0
發現在我的HTML問題。我在Yii
佈局中通過額外<?php $this->endBody() ?>
將腳本插入到<body>
兩次。
我已經看到了SOF中的這個錯誤消息的其他解決方案,但我認爲我是不同的。
當我在$.get
回調中調用setState
的那一刻,我會收到錯誤消息。
我已經刪除了所有在測試過程中評論過的未解決錯誤的代碼。
正如你在componentDidMount
中看到的那樣,我打了兩次電話setState
。第一個很好,但第二個調用會拋出錯誤消息。
它與$.get
方法有什麼關係?這往往發生回調 -
組件
let GridComponent = React.createClass ({
getInitialState()
{
return {
total_page : 0,
next_page : 0,
current_page: 0,
items : []
}
},
componentDidMount() {
this.setState ({
total_page: 1
});
$.get ('/entry/getdata?page=' + this.state.current_page, (d) => {
if (typeof d !== 'undefined') {
this.setState ({
total_page: 1
});
}
});
},
componentDidUpdate() {
},
mapDataToGridItems(d) {
},
loadMore() {
},
fetchData() {
},
render()
{
return (
<div className="grid-gallery-container">
</div>
)
}
})
;
ReactDOM.render (
<GridComponent />, document.getElementById ('grid-component-root')
);
'componentDidMount'內部的第一個'setState'不是必需的,你可以設置'total_page'爲初始狀態。 –
實際的代碼是設置更多的數據。我只是改變了它的測試。但我發現了這個問題。將更新我的問題。 – resting
是的,在'componentWillMount'或'componentDidMount'中使用'setState'沒有任何意義。你也可以將你的'get'請求移動到'componentWillMount' - 它將在之前被調用。 –