如何在父级中调用以同步方式更改其状态的函数?我的应用程序流程如下:
第一:
this.props.parentProps.setSign(role, res.data["auth"]);
然后:
this.props.params.history.push("/");
当URL更改为/
时,我的父状态不变,需要刷新浏览器!
答案 0 :(得分:1)
调整父函数setSign
以将回调作为第3个参数接受,并将其作为setState的第二个参数传递
例如:
setSign = (role, auth, cb) => {
--------
this.setState({'xx':'yy'}, cb)
-------
}
像这样将回调传递给您的父组件函数,然后在该回调中更改路由
this.props.parentProps.setSign(role, res.data["auth"], () => {
this.props.params.history.push("/");
});