更新
在我的HTML中发现了问题。我通过在<body>
布局中额外添加<?php $this->endBody() ?>
,导致脚本被插入到我的Yii
两次。
我在SOF中看到了此错误消息的其他解决方案,但我认为我的不同。
我在setState
回调中拨打$.get
的那一刻,我将收到错误消息。
我已经删除了测试时评论的所有代码,但没有解决错误。
正如您在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' )
);
答案 0 :(得分:0)
当您尝试为未安装的组件调用setState
时,通常会出现此错误 - 这通常发生在回调中。
为防止这种情况,您应该使用标记(在getInitialState
中设置并在componentWillUnmount
中重置)。或者(更好)使用Redux
排除可视组件的所有I / O操作和异步调用。