javascript - React/Flux/React-Router : How to call to store data when re-routing?

标签 javascript reactjs react-router reactjs-flux

工具:React 0.14.0、Vanilla Flux 和 React-Router

在 IndexRoute 之外重新路由时,我遇到了问题。 -我不知道如何调用下一个组件的存储数据。

例如:简单的路由

<Route path="/" component={Main}>
    <IndexRoute component={Component1} />
    <Route path="newPath" component={Component2} />
</Route>

Component1(IndexRoute)和Component2使用相同的存储数据并初始化相同的

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 之前预填充本地状态。

关于javascript - React/Flux/React-Router : How to call to store data when re-routing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33527532/

相关文章:

javascript - 嵌套 Backbone 模型未获取数据

javascript - 如何将 IEnumerable 转换为 javascript 数组

javascript - React 中 prevstate 的对象

javascript - React 在 fetch 调用填充 Redux 存储时延迟渲染

reactjs - 滚动后如何检查元素是否可见? (跟踪展示次数和点击次数)

打开 Chrome 开发工具后 Reactjs 应用程序会变慢

javascript - 实现深层链接 url 导致 react 原生应用程序无法打开 android

javascript - 多次promise后需要返回结果

javascript - Facebook JavaScript SDK 中函数注释方法的用途是什么?

reactjs - React Router - 在页面上刷新我的 parent 的图像消失