我对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()
中使用什么来防止内存泄漏?如果我选择这样做,当我使用这种方法从另一个页面返回页面时,如何更新状态?
另外,将页面所需的道具存储为状态并更新状态更好吗?我对这种方法的关注是,它只是不更新整个应用程序的状态,而其他可能需要相同道具的组件必须经历相同的不必要的过程,这可以通过使用第一种方法来避免。
答案 0 :(得分:1)
You should avoid doing api call in a component. React offers an interface "nothing" more.
You should dispatch an action. In fact an action creator can be used (check redux-thunk or a redux-api-middleware). Your state app must be hold by redux store, not in your interface.
You probably have a "top" component will is mount only once, it can dispatch this action (action which is able to get initial state)
I hope it will help