在相同组件中将useReducer与useState结合使用

问题描述 投票:0回答:2

我使用包含我的状态的反应钩useReducer,假设我有3个状态字段 - abc。这些领域联系在一起并且大多数一起变化 - 因此减速器功能具有凝聚力。如果我有不同的状态字段d与其他状态没有凝聚力 - 我应该在同一组件中同时使用useState(对于d)和useReducer(对于abc),还是最好使用相同的reducer函数?此外 - 如果我有更多像d这样的领域在类似的地方发生变化 - 我应该使用2个单独的减速器吗?这种情况的最佳做法是什么?

reactjs react-hooks
2个回答
0
投票

我的建议是使用useStateuseReducer,鉴于useReducer只是围绕useState的抽象。

就像你不会试图将组件的所有状态塞进一个useState钩子一样,你可能也应该避免为useReducer做这个。


0
投票

我倾向于尝试将useReducer抽象为全局上下文,并将useContext与reducer结合使用以获取我的应用程序状态。但是,如果组件具有内部状态,有时使用useContextuseState是有意义的。话虽这么说,我认为目前没有任何严格的快速规则,所以我会更多地阅读并为你的团队做出最好的选择。话虽如此,我确实同意IliasT所说的关于将状态填入一个useState的内容。如果你使用useState钩子为每个状态使用一个,不要尝试制作一个控制状态的对象。

© www.soinside.com 2019 - 2024. All rights reserved.