Я создаю приборную панель с автоматическим обновлением каждые несколько секунд, используя React. Я получаю свойства от вызова Ajax и передаю их компонентам, которые до сих пор работают нормально.React shouldComponentUpdate too much recursion
В одном из компонентов мне нужно установить источник изображения, который обновляется каждые x секунд автоматически, но в этом случае мне нужно использовать состояние.
Это мой компонент:
var ImageContainer = React.createClass({
getInitialState: function(){
return { src: this.props.initialImage};
},
shouldComponentUpdate: function(nextProps, nextState){
this.setState({ src: this.props.initialImage });
return true;
},
render: function() {
return (
<div className="col-md-8 col-sm-12 nopadding post-image vcenter" >
<img src={this.state.src} className="img-responsive center-cropped"/>
</div>
);
}
});
Это хорошо работает, но дает too much recursion error
.
Прошел поиск и нашел this answer, чтобы сообщить об этом componentWillReceiveProps
, но при его использовании изображение не обновляется при первом автоматическом обновлении, только на втором.
Вот тока после того, как я реализую componentWillReceiveProps
:
- Ajax получает результат вызова, скажем, данные А состояние
- Вызов передается к двум компонентам, изображение, а текст
- Первоначальный вызов> > Данные изображения A, Текстовые данные A
- Обновление компонента для получения данных B >> Данные изображения A, текстовые данные B
- Обновление компонента для получения данных C >> Данные изображения B, текстовые данные C
... и так далее. Можете ли вы помочь мне понять, почему это происходит?
Примечание: мне нужно использовать состояние, потому что есть необходимость запустить проверку на componentDidMount, чтобы подтвердить изображение является действительным
Спасибо за ваш ответ, но, к сожалению, проблема не устранена. Фактически нет никаких изменений в поведении или выходе ошибки. – nunorbatista