javascript - 如何检测路由变化并使用react?

标签 javascript reactjs react-router react-apollo

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

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

export default withRouter(formQueryWrapper)

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

但我现在面临的问题是;如果表单未成功填写,我也想使用react。

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

我尝试执行 history.listen((location, action) => {...}) 似乎可行,但可能有点困惑

有没有其他方法可以在没有历史记录的情况下解决这个问题? 我在 react 路由器监听中缺少什么吗?

最佳答案

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

关于javascript - 如何检测路由变化并使用react?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55538370/

相关文章:

javascript - 组件中的 SetTimeout 在 react 中执行两次

php - 如何检查用户是否已在 Javascript 中上传文件

javascript - 比较两个数组并通过对象 id javascript 删除对象

javascript - 选中复选框时向 JavaScript 变量添加值

reactjs - nextjs 路由器更新 URL 参数更改

reactjs - React Router v5.0 嵌套路由

javascript - XMLSerialiser 不带 &

javascript - 身份验证和 Redux/Router 的问题

javascript - 使用 JavaScript + React,如何让字符串内联求值?

javascript - React Router 仅当从 root url 启动时才能够进行路由