我试图找出根据我的服务器接收到的数据动态选择组件和存储的最佳方法。该应用程序基于以下示例:https ://github.com/yahoo/flux-examples/tree/master/fluxible-router但略有不同:
- 用户访问 mysite.com/that/and/that(应用程序无法知道 'that/and/that' 是什么类型的东西,因此无法在路由中处理)。
- 服务器向我们的 CMS 发出 GET 请求。CMS返回数据,包括它是什么类型的数据(栏目列表、文章、公司简介等)
在这里,我可以像这样动态选择一个组件(目前这是在父组件的渲染方法中):
switch (this.props.documentType) { // From the CMS case 'Section': Handler = require('../section/section'); break; case 'Article': Handler = require('../article/article'); break; default: // Do nothing }
都好。但我也想把我的数据放在一个特定的商店里。最好的方法是什么?一些对我来说似乎有点 hacky 的想法:
在同一个 switch 语句中,动态执行一个动作以将数据发送到适当的存储,'article' 组件将依赖于具有数据的 'article' 存储。
将数据发送到组件本身并让(例如)文章组件使用该数据初始化文章存储。
- 实际上将文档类型放在 URL 中,例如 mysite.com/article/this/and/that并在路由中巧妙地处理所有这些。但我宁愿不要仅仅因为我无法找到一个优雅的解决方案而弄乱我的 URL :)
提前感谢您的任何想法。