UpdateSetState (...): Можно только обновить установленный или монтажный компонент
Нашли проблему в моем 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')
);
Первый 'setState' внутри' componentDidMount' не требуется, вы можете установить 'total_page' в начальном состоянии. –
Фактический код должен был установить больше данных. Я просто изменил его для тестирования. Но я нашел проблему. Обновит мой вопрос. – resting
Да, не имеет смысла использовать некоторые 'setState' внутри' componentWillMount' или 'componentDidMount'. И вы также можете перенести свой запрос 'get' на' componentWillMount' - он будет вызываться раньше. –