Javascript 当组件使用连接的函数组件中的挂钩挂载时,如何分派操作?

Javascript 当组件使用连接的函数组件中的挂钩挂载时,如何分派操作?,javascript,reactjs,redux,react-redux,react-hooks,Javascript,Reactjs,Redux,React Redux,React Hooks,[反应重复] 我正在寻找一种合适的方法来分派一个映射操作,该操作包含从服务器获取一些数据的承诺,并在组件装载时更改存储中的状态 动作创建者使用{connect}中的{bindActionCreators}从“redux”绑定到组件道具,从“react redux”绑定到组件道具 目前,我正在使用带有跳过标志的useFetch钩子,但我认为这不是一个好的做法,因为每次状态更改时都会触发该效果,而由于该标志,它不会运行 const [skipUpdate, setSkipUpdate] =

[反应重复]

我正在寻找一种合适的方法来分派一个映射操作,该操作包含从服务器获取一些数据的承诺,并在组件装载时更改存储中的状态

动作创建者使用{connect}中的{bindActionCreators}从“redux”绑定到组件道具,从“react redux”绑定到组件道具

目前,我正在使用带有跳过标志的useFetch钩子,但我认为这不是一个好的做法,因为每次状态更改时都会触发该效果,而由于该标志,它不会运行

    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])。请看这里: