工具:React 0.14.0,React-Router 1.0.0,Vanilla Flux
因为"后退按钮"事件处理 - 我尝试使用路由来保留重要的ID以进行渲染(例如currentThreadID
)。
e.g。 - /threads/:currentThreadID
问题:因为多个组件依赖于currentThreadID,我试图抓住params并在路径打开时将它们添加到商店。问题是,我无法在程序中找到我应该抓住当前位置的位置。
例如我有这条路线
<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
时,我试图获取参数并将其添加到。{
存储,以便其他组件可以访问它。
ThreadList.js
componentWillMount: function(){
var { threadID } = this.props.params
ThreadActionCreators.setCurrentThread(threadID);
},
尝试设置当前ID导致与Dispatcher冲突 &#34;错误:不变违规:Dispatch.dispatch(...):无法在发送过程中发送。&#34;
我认为这是因为与React-Router的冲突(我所有其他调度都已完成。)
问题: 我是否正在尝试支付&#34; currentThreadID&#34;状态正确吗?如果是这样,我在哪里调用该行动将该参数存储在我的商店中?
答案 0 :(得分:0)
我暂时没有使用react路由器,但我认为你可以在提供给Router.run的回调中设置一个动作调度来调度路由更改动作。然后,您可以设置商店以从路线参数中获取相应路线更改的ID。
我建议看一下Redux,它是对Flux架构的一种改进,而redux-router也为这类东西内置了动作。