我使用包含状态的React钩子useReducer
,假设我有3个状态字段-a
,b
和c
。
这些字段联系在一起,并且大多数情况下都在一起变化-因此,减速器的功能具有凝聚力。
如果我有其他状态字段d
与其他状态不兼容-我应该同时使用useState
(对于d
)和useReducer
(对于a
,b
和c
)在同一组件上,还是最好使用相同的reducer函数?此外-如果我有更多类似d
之类的字段在相似的地方更改-我应该使用2个单独的reducer吗?
这种情况下的最佳做法是什么?
答案 0 :(得分:0)
鉴于useState
只是useReducer
的抽象,我的建议是同时使用useReducer
和useState
。
就像您不会尝试将组件的所有状态塞入一个useState
挂钩一样,您可能还应该避免对useReducer
执行此操作。
答案 1 :(得分:0)
我倾向于尝试将useReducer
抽象到全局上下文,并将useContext
与reducer结合使用以获取我的应用程序状态。但是,有时如果组件具有内部状态,则使用useContext
和useState
是有意义的。话虽这么说,我认为目前没有任何适用于钩子的硬性规定,因此,我将阅读更多内容并为您的团队做出最佳选择。话虽如此,我确实同意IliasT关于将状态塞入一个useState的说法。如果您使用useState
钩子,则对每种状态都使用一个钩子,不要尝试制作一个控制状态的对象。