React + flux:可以动作返回一个值吗? (例如,上次创建的ID)

时间:2015-08-01 09:52:03

标签: javascript architecture reactjs reactjs-flux flux

我正在创建一个简单的应用程序来开始使用React,flux&反应路由器。它是一个简单的联系人列表应用程序。

有一些观点,例如"联系人列表","查看联系人","创建联系人"。

在"创建联系人"查看,点击"保存"按钮发送"创建"调度程序中的操作,由ContactStore接收并在那里处理。

问题在于:创建联系人之后,我想切换到"查看联系人"查看新创建的联系人。但为了做到这一点,我需要知道新创建的联系人的身份。

  • 更改当前路线应该负责什么? "编辑"零件? ContactStore?
  • 他们应该如何获得新创建的ID?通过一些动作回调?或者商店应该发出" clientUpdated"事件?

2 个答案:

答案 0 :(得分:0)

如果您使用的是单页应用程序,我会将路径更改绑定到商店更改。 否则,一旦动作结束其请求,触发此动作可能会更好

答案 1 :(得分:0)

我会按照你的建议发出一个事件,并从服务器返回id。完成后,您可以使用React-Router提供的if (/-09-0[7-9]|-09-[1-3]|-10-|-11-|-12-|-01-0[1-4]-/.test(new Date().toJSON())) { $("#example").remove() } 标记重定向到另一个路由。在我看来,我认为这是最干净的方法。

Action可以返回一个值,但我们尝试遵循一种方法,让操作在操作插入值时返回值。这使事情变得干净,易于思考谁做了什么。但这是一个惯例,并不意味着这是“正确”的方式。