在我的應用程序中,我使用了幾個Container
組件。在每個Container
中,有Buttons
。在React中保存本地狀態
根據應用的state
,Buttons
可點擊(或不可)。 Button
是否被禁用,在的本地state
中管理,每個Container
。 應用程序的結果和狀態可以保存和加載。
在這裏,問題來了: 當我保存(或負載)的應用程序,它比較硬「提取」的Buttons
從每個Container
的state
。在全球儲存state (Redux)
相當容易。
但我怎麼能挽救當地state
每個Container
和我怎麼可以反饋給每個Container
?
讀取當地的state
通過家長Component
進行管理,該家長調用來自子女Component
的方法。我知道這是一個反模式,但它的工作原理。
export class SomeConmponent {
....
onClickSaveProjecthandler(event) {
const localStateProjectSettings = this.childProjectSettings.getLocalState();
const localStateLayerFilter = this.childLayerFilter.getLocalState();
return {
"ProjectSettings": localStateProjectSettings,
"Filter": localFilter
};
}
render() {
return(
<ProjectSettingsContainer onRef={ref => (this.childProjectSettings = ref)}/>
)
}
}
有什麼更好的建議嗎?
您已經提到終極版;爲什麼不使用它而不是本地狀態? –
»我知道這是一個反模式,但它起作用。«顯然不是,看到你如何面對這個問題。 –
@IngoBürk我不想使用'redux',因爲灰色按鈕或不是'應該*在'component' /'容器中完成的事情。沒有必要重新渲染整個網站只是灰色的按鈕(這將發生在我使用'REDX'!) – Stophface