之前React setState后在另一个函数调用state的值没有更新:
// init state.type = 'new';
activeMenu(type) {
// type = top
if (type == this.state.type) return;
this.loadList(type);
}
loadList(type) {
this.setState({
items: [],
type: type
});
.........
// type is top, but this.state.type still is new
}
改进后的setState是这样的:
// 使用setState的回调函数即可解决
activeMenu(type) {
if (type == this.state.type) return;
this.setState({
items: [],
page: 1,
type: type,
isLoading: false,
isLoadedFinished: false
}, function() {
this.loadList();
});
}
loadList() {
// 这样我们就可以愉快及时的使用 state里面的值
。。。
。。。
}
有疑问或技术交流,扫描公众号一起讨论学习。