這裏有一個可能的解決方案。假設我們有一個使用編輯器的應用程序。兩者都是不同的應用程序,但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