下面这样做有时候会不更新数据
// 监听 picker 的改变
UNSAFE_componentWillReceiveProps(nextProps) {
if (this.state.lastIllnessTitle !== nextProps.title) {
this.setState({
illnessTitle: nextProps.title,
});
this.requestData(nextProps.title);
}
}
React文档中对setState的说明
void setState(
function|object nextState,
[function callback]
)
第二个参数是一个回调函数,在setState的异步操作结束并且组件已经重新渲染的时候执行。我们可以通过这个回调来拿到更新的state的值。
下面是用法:
this.setState(
{
illnessTitle: nextProps.title,
},
() => {
this.requestData();
}
);
网友评论