【发布时间】:2016-11-17 14:38:44
【问题描述】:
假设我有一个Link,它将我发送到一个用于添加/编辑列表条目的页面。
当我点击 Link 本身时,如何调度 Redux 操作,以便在实际重定向到该页面之前先更新 Redux 存储。
例如:
我点击编辑按钮 -> 动作被调度 -> 存储更新,{'state': 'edit-mode'} -> 继续重定向。
或者你有其他方法来完成我想要做的事情?
也许当组件挂载后,我会根据某些条件运行stateToEdit 之类的操作?如果是这样,那么请告诉我你的方式。谢谢
PS:我只使用一个组件来进行所有添加/编辑/删除。所以我正在考虑一种基于state 进行渲染的方法,无论是edit-mode 还是delete-mode 等。
【问题讨论】:
-
您可以使用
browserHistory.push(path)和onClick函数,而不是使用Link。在此函数中,调度您的操作,然后推送到新位置。 -
我也在考虑类似的事情,但我不太确定这是否是解决问题的正确方法。我想我现在会使用这种方法。如果还有其他方法,那么我想知道。谢谢
-
解决此问题的更合适的方法可能是引入
redux-thunk,考虑到您可能想要执行此“发送某些内容,然后移至另一个页面”,这可能有助于更多地组织代码在不同的地方采取行动。在这里看看 Dan 的回答,我相信它会让你了解如何在你的上下文中解决这个问题:stackoverflow.com/questions/35493352/… -
^ 就像这样,设想将其中一个
dispatch(increment)调用替换为对browserHistory的调用 -
感谢您的回复和信息。你能把你的回复作为答案让我接受吗?
标签: javascript reactjs redux react-router react-redux