Reactjs 关于“useSelector”和“createSelector”与Redux工具包的混淆
我是Redux和Redux工具包的新手。我了解到,Reactjs 关于“useSelector”和“createSelector”与Redux工具包的混淆,reactjs,redux,redux-toolkit,Reactjs,Redux,Redux Toolkit,我是Redux和Redux工具包的新手。我了解到,createSelector可以接受多个输入选择器,它们可以作为单独的参数或数组提供。所有输入选择器的结果都作为单独的参数提供给输出选择器 const selectA=state=>state.a; const selectB=state=>state.b; const selectC=state=>state.c; const selectABC=createSelector( [选择A,选择B,选择C], (a、b、c)=>{ //对a、b和
createSelector
可以接受多个输入选择器,它们可以作为单独的参数或数组提供。所有输入选择器的结果都作为单独的参数提供给输出选择器
const selectA=state=>state.a;
const selectB=state=>state.b;
const selectC=state=>state.c;
const selectABC=createSelector(
[选择A,选择B,选择C],
(a、b、c)=>{
//对a、b和c执行某些操作,然后返回结果
返回a+b+c;
}
);
我的问题是,如果我只关心一个简单的状态,我可以像这样使用useSelector
const selectA=state=>state.a;
常数a=使用选择器(选择a)
这两种用法的区别是什么?选择器是任何接受Redux状态树作为参数并返回一些提取或派生数据的函数。这包括像您所展示的普通函数
在许多情况下,您希望记录结果的计算,例如在一组项目上进行映射,以便在输入发生更改之前不会重新计算结果。重新选择的createSelector
创建记忆选择器函数,该函数仅在输入更改时重新计算输出
有关更多详细信息,请参阅我的帖子以及。谢谢回复!实际上,我想知道我们是否只是为了从状态中获取一段状态并直接返回它,我们应该使用一个普通函数,而不是
createSelector
,或者默认情况下我们应该始终使用createSelector
?如果涉及到实际的派生状态,我建议只使用createSelector
,state=>state.items.map(item=>item.id)