在我的应用程序中,我使用了几个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