等待状态改变,然后用react-router触发新路由?

时间:2019-07-12 16:13:43

标签: reactjs router

有没有办法在用react-router触发新路由之前等待一个诺言解析?

在遵循新路线之前,我需要等待状态更改。如果我们将函数处理到onClick(),则可以使用推送历史记录,但是如果通过其他方式触发,则无法使用。

有关此问题的任何建议吗?

2 个答案:

答案 0 :(得分:0)

按照定义,状态的操作是异步的,如果您需要先确保状态已更新,例如执行API调用,则需要使用setState的第二个参数:仅被触发的回调状态更新完成后:

this.setState({items}, () => console.log('Here the state is updated'))

答案 1 :(得分:0)

这是React LifeCycle方法ComponentDiDUpdate(){}派上用场的地方,或者,如果您正在使用React Hooks,则可以使用useEffect(() => {}, []);
这里是链接:
Use Effect Hook
componentDidUpdate()