Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 关于“useSelector”和“createSelector”与Redux工具包的混淆_Reactjs_Redux_Redux Toolkit - Fatal编程技术网

Reactjs 关于“useSelector”和“createSelector”与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和

我是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和c执行某些操作,然后返回结果
返回a+b+c;
}
);
我的问题是,如果我只关心一个简单的状态,我可以像这样使用
useSelector

const selectA=state=>state.a;
常数a=使用选择器(选择a)
这两种用法的区别是什么?

选择器是任何接受Redux状态树作为参数并返回一些提取或派生数据的函数。这包括像您所展示的普通函数

在许多情况下,您希望记录结果的计算,例如在一组项目上进行映射,以便在输入发生更改之前不会重新计算结果。重新选择的
createSelector
创建记忆选择器函数,该函数仅在输入更改时重新计算输出


有关更多详细信息,请参阅我的帖子以及。

谢谢回复!实际上,我想知道我们是否只是为了从状态中获取一段状态并直接返回它,我们应该使用一个普通函数,而不是
createSelector
,或者默认情况下我们应该始终使用
createSelector
?如果涉及到实际的派生状态,我建议只使用
createSelector
state=>state.items.map(item=>item.id)