Я новичок в реакции + поток. Я немного смущен тем, когда и как происходит повторный рендеринг, когда событие отправляется магазинами. В моем приложении я слушаю событие в функции componentWillMount(), которая вызывается непосредственно перед рендерингом happpens. Он отлично работает, и мои взгляды обновляются. Я только раз забочусь о том, что заставляет мой компонент повторно отображать. Ниже приведены коды.Когда и как происходит повторный рендеринг, когда магазины генерируют любое событие в потоке?
функции для обновления магазина
createTodo(text){
const id = Date.now();
this.todos.push({
id,
text,
complete:false
});
this.emit("change");
Моего компонента - метод слушателя.
componentWillMount(){
TodoStore.on("change",() => {
this.setState({
todos: TodoStore.getall()
})
})
}
Вот что вызывает мой компонент для повторной визуализации? Не могли бы вы объяснить мне подробно.
Как я вызываю setState в компонентеWillMount. Первый раз рендеринг компонента «setState» будет вызываться непосредственно перед тем, как произойдет рендеринг. Я спрашиваю, что вызовет функцию componentWilMount снова? Я верю только, что setState будет вызван снова? Исправьте меня pls – scripter
см: https://facebook.github.io/react/docs/component-specs.html Так компонентWillMount вызывается один раз, когда компонент монтируется в DOM. Если у вас несколько одинаковых компонентов, тогда будет несколько вызовов. TodoStore.on («change») является асинхронным (слушателем), поэтому он не будет немедленно изменять состояние. Вы также можете попробовать уменьшить вместо потока. – Hardy