你应该在使用 redux 时使用 this.setState() 吗?

Should you ever use this.setState() when using redux?

你应该在使用 redux 时使用 this.setState() 吗?或者你应该总是调度动作并依赖道具?

setState 的明确用途是 UI 具有本地显示状态但与全局应用程序无关的组件。例如,表示是否主动显示特定下拉菜单的布尔值不需要处于全局状态,因此更方便地由菜单组件的状态控制。

其他示例可能包括 collapse/expand 层次结构的手风琴显示中的行状态。或者可能是选项卡导航中当前选择的选项卡。但是,在这两个示例中,您仍然可以选择全局处理 UI 状态。例如,如果您想在浏览器存储中保留 expand/collapse 状态,以便在页面刷新时保留该状态,则这是必要的。

在实践中,通常最容易实现具有本地状态的 UI 元素,并根据需要将它们重构为全局状态。