Javascript 什么';它是在Redux存储中存储函数的替代方法 问题

Javascript 什么';它是在Redux存储中存储函数的替代方法 问题,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我有一个这样的结构: <MenuBar /> <NavigationBar> <irrelevant stuff here /> <ActionButton /> </NavigationBar> <Router> <Route ...> </Router> 讨论了它,并参考了一些GitHub问题。也讨论这个问题 问题: 我见过很多地方有人说“你不应该那样做”,但我还没有看到在商店中存

我有一个这样的结构:

<MenuBar />
<NavigationBar>
  <irrelevant stuff here />
  <ActionButton />
</NavigationBar>
<Router>
  <Route ...>
</Router>

讨论了它,并参考了一些GitHub问题。也讨论这个问题

问题: 我见过很多地方有人说“你不应该那样做”,但我还没有看到在商店中存储函数的替代方法。我能想到的另一种选择是使用道具钻孔,但我真的希望避免这种模式

在这一点上,我真的不需要对存储进行持久化或重新水化,时间旅行调试是一个非常好的工具,但不是必须的。然而,如果有好的选择,我希望避免牺牲这些东西

提前感谢!:)

有几个选项:

  • 使用中间件侦听
    “ACTION\u BUTTON\u CLICKED”
    操作,并根据其他值(存储状态、路由等)运行不同的逻辑。这可以是您自己编写的自定义中间件,也可以是一个通用的副作用中间件,如
    redux saga
    redux observable
    ,它允许您响应已调度的操作
  • 根据其他行为将预定义的操作放入存储,并在单击按钮时调度该操作
我在我的帖子中展示了一个预定义操作方法的示例。

几个选项:

  • 使用中间件侦听
    “ACTION\u BUTTON\u CLICKED”
    操作,并根据其他值(存储状态、路由等)运行不同的逻辑。这可以是您自己编写的自定义中间件,也可以是一个通用的副作用中间件,如
    redux saga
    redux observable
    ,它允许您响应已调度的操作
  • 根据其他行为将预定义的操作放入存储,并在单击按钮时调度该操作

我在我的帖子中展示了一个预定义操作方法的示例。

您可以将
react router
的状态放在redux存储中。然后,当导航状态更改时,您可以从
导航栏
操作按钮
中访问当前路线


您可以在ActionButton或NavigationBar中存储逻辑,以根据路由决定按钮的功能。

您可以在redux存储区中放置
react router
的状态。然后,当导航状态更改时,您可以从
导航栏
操作按钮
中访问当前路线

您可以在ActionButton或NavigationBar中存储逻辑,根据路由决定按钮的功能