Я немного запутался в жизненном цикле компонентов в React. Рассмотрим компонент, который загружает свое начальное состояние, отправив действие, getTodo()
и обновив состояние всего приложения
componentDidMount() {
var _this = this;
axios.get('/api/todo').then(function(response) {
_this.props.actions.getTodo(response.data);
}).catch(function(err) {
console.log(err);
});
}
Что я могу использовать в componentWillUnmount()
чтобы предотвратить утечку памяти? Если я захочу сделать это, как можно будет обновить состояние, когда я вернусь на страницу с другой страницы с помощью этого метода?
Кроме того, лучше ли просто хранить реквизиты, которые мне нужны для страницы, как состояние и обновление состояния? Моя озабоченность этим подходом заключается в том, что он просто не обновляет состояние всего приложения и других компонентов, которым может потребоваться тот же реквизит, придется пройти через тот же ненужный процесс, чего можно было бы избежать, используя первый подход.
Вы должны избегать вызова api в компоненте. React предлагает интерфейс "ничего" больше.
Вы должны отправить действие. На самом деле можно использовать создатель действия (check redux-thunk или redux-api-middleware). Ваше государственное приложение должно храниться в магазине redux, а не в вашем интерфейсе.
Вероятно, у вас есть "верхний" компонент, который будет монтировать только один раз, он может отправить это действие (действие, которое может получить начальное состояние)
Надеюсь, это поможет