【发布时间】:2016-02-18 08:49:59
【问题描述】:
工具:React 0.14.0、React-Router 1.0.0、Vanilla Flux
由于“后退按钮”事件处理 - 我正在尝试使用路由来保留重要的 id 以进行渲染(例如 currentThreadID)。
例如- /threads/:currentThreadID
问题:由于多个组件依赖于 currentThreadID,我试图在打开路由时获取参数并将它们添加到存储中。问题是我在程序中找不到应该获取当前位置的位置。
例如我有这条路线
<Route path='/' component={Main}>
<Route path='home' component={Home} >
<Route path='threads' component={Thread} >
<Route path=':currentThreadID' component={ThreadList} />
</Route>
</Route>
<Route path='login' component={Login} />
</Route>
当我输入 ThreadList 时,我试图获取参数并将其添加到
store 以便其他组件可以访问它。
ThreadList.js
componentWillMount: function(){
var { threadID } = this.props.params
ThreadActionCreators.setCurrentThread(threadID);
},
尝试设置当前 ID 会导致与 Dispatcher 发生冲突 “错误:不变量违规:Dispatch.dispatch(...): 无法在调度过程中调度。”
我相信这是因为与 React-Router 冲突(我所有其他的调度都已经完成了。)
问题: 我是否试图正确分配“currentThreadID”状态?如果是这样,我应该在哪里调用将参数存储在我的商店中的操作?
【问题讨论】:
标签: routing reactjs url-routing react-router reactjs-flux