Reactjs 将connect和mapDispatchToProps与功能组件一起使用

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; }; 如果我

我正在尝试Redux。我知道要从功能组件向商店发送操作,可以使用
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-Redux
dispatch
函数应该是稳定的。因此,它将始终警告您需要将其添加到effect deps数组中


因此,您最好始终将其添加到deps数组中。

当使用
连接
HOC并将分派映射到动作创建者时,动作创建者被包装在分派调用中,因此确实不需要直接访问
分派
属性。