React/Flux/React路由器:如何在重新路由时调用以存储数据
React/Flux/React-Router: How to call to store data when re-routing?
工具:React 0.14.0、Vanilla Flux和React Router
当涉及到在IndexRoute之外重新路由时,我遇到了一个问题-我不知道如何为下一个组件调用存储数据
例如:一个简单路由
<Route path="/" component={Main}>
<IndexRoute component={Component1} />
<Route path="newPath" component={Component2} />
</Route>
组件1(IndexRoute)和组件2使用来自存储的相同数据并初始化相同的
function getInitialState() {
return {
object1: null,
object2: null,
object3: null
}
}
它们的更新方式相同:
function getStateFromStores() {
return {
object1: Store1.get(),
object2: Store2.get(),
object3: Store3.get(),
}
}
问题:
但是IndexRoute肯定会调用getStateFromStores(),因为它将侦听到存储中的初始加载,但是Component2在路由到时仍然为null。
我不太确定的解决方案
如果我设置存储为空时返回"null",我可以通过设置更改其初始化来使Component2呈现其数据,如下所示:
function getInitialState() {
return {
object1: Store1.get(),
object2: Store2.get(),
object3: Store3.get()
}
}
我担心我的解决方案可能更像是一个破解,而不是一个解决方案,并且可能有一种通用的组件生命周期和/或React Router技术来加载组件
您应该在componentWillMount
中而不是在组件构造函数中执行此操作。该生命周期事件将使您有时间在组件装载到DOM之前预先填充本地状态。
相关文章:
- 如何使用服务器上的react路由器处理所有可能的路由
- React Router一直给我一个警告:你不能更改<路由器路由>
- 使用react router/react router redux将特定的redux操作绑定到一个路由
- React 路由器 activeClassName 不会为子路由设置活动类
- React Router,在params之后嵌套路由
- react路由器(-redux)未匹配路由
- 使用Express路由React服务器端
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- 直接使用 React Router + React + Flux 路由到 URL
- 对不同的路由使用相同的组件与 React Router
- React路由帮助路由实际上并没有跳转到页面
- React路由器仅模式路由
- React路由器:防止导航到目标路由
- react路由器在为url提供路径时忽略嵌套路由
- 如何使用react路由器重定向到另一条路由
- React路由器重定向相同或不同历史对象上的pushState
- React redux如何使用React路由器重定向到特定页面
- 从Javascript正确导航到React路由
- React路由在facebook的create-react-app构建中不起作用
- 如何创建React路由器重定向url