【问题标题】:I want to do something on a specific path change in react router我想对反应路由器中的特定路径更改做一些事情
【发布时间】:2021-05-03 08:01:34
【问题描述】:

虽然我知道。

props.history.listen((location, action) => {
                     console.log("on route change",location);
                   })

但我需要实现略有不同。 假设我想对反应路由器中的特定路径更改做一些事情。 示例 - /user/dashboard。 在目标组件上,如果先前的路径是 /user

,我想做一些事情(状态更改)

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    在用户页面中,您可以使用状态推送。例如,

    history.push({
        pathname:'/dashboard',
        state: { someState: someState }
    });
    

    在仪表板页面中,您可以按位置获取状态:

    console.log(props.location.state);
    

    【讨论】:

    • 在目标组件console.log(props.location.state);它显示未定义。
    【解决方案2】:

    您可以在使用react-router 时使用history 属性。

    props.history.push('/dashboard');
    

    它可用于跟踪以前的路线和push 方法将用户重定向到所需的路径。

    看看https://reactrouter.com/web/api/history

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 2022-01-17
      • 1970-01-01
      • 2017-12-11
      相关资源
      最近更新 更多