如何检测路线变化并对变化做出反应?

时间:2019-04-05 15:03:30

标签: javascript reactjs react-router react-apollo

我有一个多页表单,依赖于一些数据。

const formQueryWrapper = ({...routerProps}) => {
  return (
    <Query> <MultiPageForm {queryProps}/> </Query>
  )
}

export default withRouter(formQueryWrapper)

成功完成表单后,我可以通过重定向可靠地传递某个状态formCompleted: true并完成我想做的事情。

但是我现在面临的问题是;如果表单未成功完成,我也想做出反应。

我尝试在ComponentWillUnmount()中进行一些检查,但是每当出现侧边栏导航动画时,整个页面都会保持重新渲染。

我试图使history.listen((location, action) => {...})看起来可行,但可能

有点混乱

还有没有其他历史我应该解决这个问题的方法吗? 我在react-router监听中缺少什么吗?

1 个答案:

答案 0 :(得分:2)

如果要在其他页面中共享逻辑,则要使用状态管理。尝试使用Redux。