有时它并不明显:我应该保持React视图的状态,即活动标签,选择的选项,切换器值,是输入验证标志吗?
实际上有两种选择:
哪个更好?商店是否仅用于来自服务器的数据?
我的考虑因素:
NEW_TAB_SELECTED
,并从处理它的商店触发新操作DOWLOAD_TAB_DATA
。NEW_TAB_SELECTED
)并避免操作链。但是,如果我想离开这个视图,如何保留选定的标签?答案 0 :(得分:4)
应该保留在组件状态中的东西是仅影响该组件的东西。
因此,例如,如果您打开一个组件以显示更多内容,那么isOpen
标志可以保持在状态,因为它在组件内部。
如果信息不是组件的一部分(例如消息的文本以及消息是否已被阅读),则应将其保存在商店中并根据需要通过应用程序进行传播。
更改组件的状态将导致它重绘,因此请尝试将状态保持为其状态的最小可能表示,并仅将这些属性存储在this.state
中。
因此,根据我的问题,我建议保留活动标签,选定选项,切换值以及输入是否在this.state
中验证。它们是组件的所有属性,但不影响任何其他组件。我会保留在商店中填充视图的数据。我会在this.state
中保留指示视图状态的标志。
希望有所帮助。