这里有一个可能的解决方案。假设我们有一个使用编辑器的应用程序。两者都是不同的应用程序,但MainApp可以通过文件编辑到编辑。组件将如下所示:
<MainApp>
<Editor
content={fileContent}
author={fileAuthor}
onSubmitFile={(f) => updateFile(f)}
/>
</MainApp>
因此,MainApp和编辑器将具有不同的减速器,存储和操作。
问题是如何处理编辑的商店变化,所以一切。解决这个问题的方法可能是在React的生命周期中。我们可以在Editor
安装时创建商店,并根据新的道具更新其商店的部分内容。
喜欢的东西:
const Editor = React.createClass({
componentWillMount() {
const initialData = {...this.props} // pick whatever data we need from props
this.store = createStore(initialData) // create initial Store
},
componentWillReceiveProps (nextProps) {
const {content, author} = nextProps
this.store.dispatch(setAuthor(author))
this.store.dispatch(setContent(content))
},
render() {
return (
<Provider store={store}>
<EditorContainers />
</Provider>
)
}
})
你有什么问题?我不明白“myApp商店如何处理财产变更”的含义。你能展示一个你正在努力的具体例子吗? –
假设我有一个可以处理文件并编辑其内容的应用程序。所以我有2个应用程序,一个是处理文件的主要应用程序,另一个是编辑器本身。 ' ' 主应用程序会将文件的内容传递给编辑器,但编辑器拥有基于此文件的自己的存储区。这家商店可以处理插入符号的位置,而类似的东西,但主应用程序不会意识到这一点。实际上,MainApp可以更改编辑器的内容,并且该商店将被重置。 –
carlesba
@DanAbramov也许我的回答更好地解释了这种情况。但我不确定' '可以处理:http://stackoverflow.com/questions/38187722/could-we-compose-different-redux-applications-to-create-a-bigger-one/38188580# 38188580 –
carlesba