React + flux:动作可以返回值吗?(例如last created id)
React + flux: can action return a value? (e.g. last created id)
我正在创建一个简单的应用程序来开始使用React, flux &react-router。这是一个简单的联系人列表应用。
有几个视图,如"联系人列表"、"查看联系人"、"创建联系人"。
在"创建联系人"视图中,单击"保存"按钮在Dispatcher中调度一个"创建"操作,该操作由ContactStore接收并在那里进行处理。
问题来了:创建联系人后,我想切换到"view contact"视图查看新创建的联系人。但为了做到这一点,我需要知道新创建联系人的id。
- 谁应该负责改变当前的路线?"编辑"组件?ContactStore吗?
- 他们应该如何获得新创建的id?通过一些动作回调?或者商店应该发出一个"clientUpdated"事件?
如果是单页应用,我会将路由更改绑定到存储更改。否则,最好在动作结束其请求后触发此操作
我将按照您的建议发出一个事件,并从服务器返回id。一旦你有了这些,你就可以使用React-Router提供的<Redirect />
标签来重定向到另一个路由。在我看来,我认为这将是最干净的方法。
Action可以返回一个值,但我们尝试遵循一个方法,即让存储返回一个值,而操作插入值。这使事情保持清晰,并且易于考虑谁做了什么。但这是一种惯例,并不意味着这是"正确"的方式。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 在三个.js中创建球体(例如地球)的磁力线
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- Last.fm API发送2个曲目时,我要求一个,如果我正在听一首歌
- Regex Replace仅适用于Last Match
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 在使用javascript的输入字段中,只接受20的倍数(例如40,60,80)
- 哪个更有效-$('selecter').last()或$(')selecter:last'
- jQuery双对象构造函数-例如$($(this))
- 如何使用浏览器中用酶创建的组件反应例如摩卡
- 在Node.js中,我在哪里可以看到JavaScript方法的源代码,例如hasOwnProperty
- 在页面内执行一个javascript函数作为last
- 仅将JavaScript应用于部分代码(例如菜单)
- 监视JavaScript输出,例如console.log()
- 如何在特定时间重新加载page.php,例如:07:45.非持续时间,例如:每5秒
- jQuery last child和insetBefore不起作用
- 反向名称的JavaScript函数不能正确工作(例如学习JavaScript-O'Reilly)
- 来自jQuery,如何在React.js中制作DOM动画?例如设置进度条的动画
- React + flux:动作可以返回值吗?(例如last created id)