【问题标题】:How do I clear location.state when using reach-router?使用到达路由器时如何清除 location.state?
【发布时间】:2021-05-10 23:44:23
【问题描述】:

在我的 React 应用程序中,我根据用户的来源对路由组件的初始化/渲染执行条件逻辑。如果他来自页面 A,则指向页面的链接包含在渲染路由时从 this.props.location.state 读取的状态数据。但是在刷新时,我需要页面“忘记”用户来自哪里(或者更具体地说,清除 location.state)。

不幸的是,Reach Router 不使用 history 作为依赖项,所以像 these 这样提倡 history.update() 的解决方案似乎行不通。

【问题讨论】:

  • 你想好如何实现了吗?我有同样的问题

标签: javascript reactjs reach-router


【解决方案1】:

首先,您正在查看的 history.update() 文档适用于 react-router,而不是reach-router(它们非常相似但并不相同,并且查看错误的文档只会让您头疼)。

您可能会遇到的下一个问题是您需要弄清楚您需要更改 location.state 的哪一部分。这取决于您在用户导航到页面时在状态中设置的内容。默认情况下,reach-router 状态只包含一个键,用于有条件渲染的状态是您设置的值。因此,您需要通过将值设置为 null 或 false 来删除 location.state.value(值是您设置的任何值),这应该会停止条件渲染。

【讨论】:

    猜你喜欢
    • 2019-07-22
    • 2020-06-06
    • 2021-03-20
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2020-04-28
    相关资源
    最近更新 更多