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

Should you ever use this.setState() when using redux? Or should you always be dispatching actions and relying on props?

36356 次浏览

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

其他示例可能包括层次结构的手风琴显示中线条的折叠/展开状态。或者可能是选项卡导航中当前选择的选项卡。但是在这两个示例中,您仍然可以选择全局处理 UI 状态。例如,如果您希望在浏览器存储中保持展开/折叠状态,以便通过页面刷新来保留它,那么这是必要的。

在实践中,通常最简单的方法是使用本地状态实现这样的 UI 元素,并根据需要将它们重构为全局状态。