【发布时间】:2026-01-21 02:25:18
【问题描述】:
我正在使用 redux 来存储我的状态。当我导航到同一页面(多个组件但在一个页面上)时,它可以正常工作。但是当我在新标签/窗口的链接中打开时,状态变为未定义。
根据调查结果,刷新页面或在新选项卡/窗口中打开时,redux 状态预计会重置。然后我想到的是在导航到另一个组件时将 store.getState() 作为参数传递,这样如果组件看到状态未定义,它将访问其 props 状态(由前一个组件传递)。
现在,当在新标签页中打开链接时,我需要传递状态。我正在使用 react-router 进行导航。目前,当我单击链接时,状态会传递到其他页面。但是当我在新窗口/选项卡中打开链接时,状态再次变为未定义。我正在使用它导航到指定的链接:
<Link to={link}>{value}</Link>
其中链接是一个常量,包含我需要传递的路径名和状态(store.getState())。
我发现了许多类似的 * 问题[e.g. programmatically-navigate-using-react-router]。我试过使用
<a onClick={history.push(link)}>
但它似乎不起作用。也许我以错误的方式使用它。其他的我只是不知道如何在这种情况下使用/实现。
除了解释之外,请给出示例代码sn-ps。我是 redux/react 的初学者。
谢谢!
【问题讨论】:
-
遇到了这个 npm 包,它在不同的选项卡之间同步 redux 状态。不确定这是否是您的要求,但请粘贴以防万一:redux-state-sync。不过,在多个选项卡之间同步状态之前需要注意,这可能会导致不必要的副作用。
标签: reactjs redux react-router state