React + flux:动作可以返回值吗?(例如last created id)

React + flux: can action return a value? (e.g. last created id)

本文关键字:例如 last created id 返回值 flux React      更新时间:2023-09-26

我正在创建一个简单的应用程序来开始使用React, flux &react-router。这是一个简单的联系人列表应用。

有几个视图,如"联系人列表"、"查看联系人"、"创建联系人"。

在"创建联系人"视图中,单击"保存"按钮在Dispatcher中调度一个"创建"操作,该操作由ContactStore接收并在那里进行处理。

问题来了:创建联系人后,我想切换到"view contact"视图查看新创建的联系人。但为了做到这一点,我需要知道新创建联系人的id。

  • 谁应该负责改变当前的路线?"编辑"组件?ContactStore吗?
  • 他们应该如何获得新创建的id?通过一些动作回调?或者商店应该发出一个"clientUpdated"事件?

如果是单页应用,我会将路由更改绑定到存储更改。否则,最好在动作结束其请求后触发此操作

我将按照您的建议发出一个事件,并从服务器返回id。一旦你有了这些,你就可以使用React-Router提供的<Redirect />标签来重定向到另一个路由。在我看来,我认为这将是最干净的方法。

Action可以返回一个值,但我们尝试遵循一个方法,即让存储返回一个值,而操作插入值。这使事情保持清晰,并且易于考虑谁做了什么。但这是一种惯例,并不意味着这是"正确"的方式。