Reactjs 将connect和mapDispatchToProps与功能组件一起使用
我正在尝试Redux。我知道要从功能组件向商店发送操作,可以使用Reactjs 将connect和mapDispatchToProps与功能组件一起使用,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在尝试Redux。我知道要从功能组件向商店发送操作,可以使用useDispatchhook订阅。我正在从useffect调度操作,根据,dispatch可以从依赖项列表中省略到useffect,因为它的标识是稳定的 const trivia categories=()=>{ const dispatch=usedpatch(); useffect(()=>{ 分派({type:“SET_CATEGORIES”,triviacegories}); }, []); 返回null; }; 如果我
useDispatch
hook订阅。我正在从useffect
调度操作,根据,dispatch
可以从依赖项列表中省略到useffect
,因为它的标识是稳定的
const trivia categories=()=>{
const dispatch=usedpatch();
useffect(()=>{
分派({type:“SET_CATEGORIES”,triviacegories});
}, []);
返回null;
};
如果我决定使用
connect
订阅应用商店,那么dispatch
函数标识是否仍然像usedpatch
hook一样稳定?dispatch
函数将始终稳定,只要您继续将相同的Redux应用商店实例传递给您的
,因为dispatch
只是store.dispatch
但是,React“hook dependencies”lint规则不知道这一点。它知道来自React的内置钩子(useState
setters和useReducer
dispatch函数)的函数总是稳定的,因此它可以在特殊情况下忽略这些函数,但它无法知道React-Reduxdispatch
函数应该是稳定的。因此,它将始终警告您需要将其添加到effect deps数组中
因此,您最好始终将其添加到deps数组中。当使用
连接HOC并将分派映射到动作创建者时,动作创建者被包装在分派调用中,因此确实不需要直接访问分派属性。