我想要这样的事情:
MyMainComponent = React.createClass({
getInitialState()=>{
let state = store.getState();
return Object.assign([], state, initialDataset: this.props.initialDataset)
}
})
以及代码中的其他地方:
let store = createStore(reducers, {
foo: "default"
initialDataset: []
})
export const MyApp = ({ initialDataset }) => (
<Provider store={store}>
<MyMainComponent initialDataset={initialDataset} />
</Provider>
)
我还没有找到任何接近这个的例子。我不确定它是否可能。
编辑:我想补充一点MyApp
在一个带有initialDataset
实例化服务器端的ruby帮助器中调用。
答案 0 :(得分:1)
由于azium突出显示,将redux商店的状态复制到您的顶级组件状态似乎没有必要。
如果您的问题是使用store
客户端实例化initialDataset
,则可以在HTML中使用全局变量添加script
标记:
// assuming you are in a erb template
<script>window.__INITIAL_STATE__ = <%= JSON.generate(initial_dataset) %></script>
然后在您的资产中,您可以像这样使用它:
let store = createStore(reducers, {
foo: "default"
initialDataset: window.__INITIAL_STATE__ || []
});
您可以在redux文档中找到相关示例:http://redux.js.org/docs/recipes/ServerRendering.html
希望有所帮助