在更新一个组件中state的某个数据时,通常将该数据刷新到model的数据中,其他组件需要实时读取model的数据; 而setState是异步执行的,刷新到model中的数据不能保证为state中最新的数据,即有可能是上一个数值,解决办法:在setState方法中实时将数据刷新到model
如上传图片,img为上传图片的base64值,若在setState后将数据刷新到model,数据是上一个img的值,可在setState中直接将img刷新到ImgModel
this.getBase64(info.file.originFileObj, img => this.setState({
img,
loading: false,
}, () => {
const payload = {
img: img,
}
this.props.dispatch({ type: 'ImgModel/loadImg', payload });
}));
显示页面则可从ImgModel拿到img显示
const { img } = this.props.ImgModel;
return(
<div>
<img src={img} />
</div>
);