【问题标题】:Link of React Router, update redux state before redirectReact Router 的链接,在重定向之前更新 redux 状态
【发布时间】:2017-07-04 13:58:14
【问题描述】:

我有一个来自 React Router 的 Link 组件,看起来像:

<Link
    className={mainClass}
    to={to}
    target={target}
>
    Link
</Link>

我需要更新 redux 存储(或在重定向之前运行任何方法),因为我需要将值从链接页面发送到目标页面并且无法更新路由。

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    也许不是使用 React-Router Link 组件,而是尝试调度一个更新您的商店的操作,并在操作完成时使用 browserHistory 手动重定向到给定的 URl

    【讨论】:

      【解决方案2】:

      您可以在 onEnter 挂钩中更新 Redux 存储。

      您可能希望传递第三个参数 callback 以阻止转换,直到它被调用。

      【讨论】:

      • Link组件有回调吗?
      • 不,onEnter 挂钩将callback 作为第三个参数。请查看文档here。您可以使用可用的store 参数将路由定义包装在函数中,并使用该值来更新 Redux。
      • 但是,我有重定向之前的信息,他们的问题是如果重定向之前完成,如何调用调度。
      • onEnter 钩子在重定向发生之前被调用。重定向会延迟,直到您致电 callback。更新钩子中的 Redux,完成后,调用callback 转到目标页面。
      • 然后正如@bartek 所说,您可以调度一个异步操作来更新Redux,并在promise 解决后,使用browserHistory 手动重定向到目标页面。
      猜你喜欢
      • 2022-10-04
      • 1970-01-01
      • 2019-09-28
      • 2020-08-08
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      相关资源
      最近更新 更多