Javascript 当组件使用连接的函数组件中的挂钩挂载时,如何分派操作?
[反应重复] 我正在寻找一种合适的方法来分派一个映射操作,该操作包含从服务器获取一些数据的承诺,并在组件装载时更改存储中的状态 动作创建者使用{connect}中的{bindActionCreators}从“redux”绑定到组件道具,从“react redux”绑定到组件道具 目前,我正在使用带有跳过标志的useFetch钩子,但我认为这不是一个好的做法,因为每次状态更改时都会触发该效果,而由于该标志,它不会运行Javascript 当组件使用连接的函数组件中的挂钩挂载时,如何分派操作?,javascript,reactjs,redux,react-redux,react-hooks,Javascript,Reactjs,Redux,React Redux,React Hooks,[反应重复] 我正在寻找一种合适的方法来分派一个映射操作,该操作包含从服务器获取一些数据的承诺,并在组件装载时更改存储中的状态 动作创建者使用{connect}中的{bindActionCreators}从“redux”绑定到组件道具,从“react redux”绑定到组件道具 目前,我正在使用带有跳过标志的useFetch钩子,但我认为这不是一个好的做法,因为每次状态更改时都会触发该效果,而由于该标志,它不会运行 const [skipUpdate, setSkipUpdate] =
const [skipUpdate, setSkipUpdate] = useState(false);
useEffect(() => {
if (!skipUpdate) {
props.fetchData();
setSkipUpdate(true);
}
}, [skipUpdate, props]);
我希望组件挂载时会触发“分派效应”,并非每个状态都会发生更改。将效应与空依赖项数组一起使用:
useEffect(() => { props.fetchData(); }, []);
这将仅在初始装载时运行。谢谢您的回答。它可以工作,但给了我一个警告:
React Hook useffect缺少依赖项:“props”。包括它或删除依赖项数组。但是,当*any*道具更改时,“道具”将更改,因此首选的修复方法是在useEffect调用之外分解“道具”对象,并引用useEffect中的特定道具
我可以忽略警告,但这让我想到这是否完全可以。您可以忽略用例的警告-如果fetchData
prop更改,您不想重新蚀刻,是吗?顺便说一句,这听起来像是一个皮棉警告。如果是这样的话,就在这个时候抑制它吧。你可能不应该忽略这个警告。eslintforhooks确实希望您在useffect
中声明所有依赖项。您希望尝试将效果重写为类似于`const{fetchData}=props;useffect(()=>{fetchData()},[fetchData])。请看这里: