React Hooks:在useEffect中获取数据

时间:2019-07-18 14:53:12

标签: javascript reactjs redux react-hooks

我正在使用react Hooks useEffect从组件中的API提取数据

props.getUserInfoAction() is an Action from redux dispatching user info 

示例

useEffect(() => {
        props.getUserInfoAction();
      }, []);

一切都很好,我可以获取数据,但是发现控制台上显示了warning

  

反应挂钩useEffect缺少依赖项:'props'。要么包括   它或删除依赖项数组。但是,“道具”将在以下时间发生变化   任何道具都会发生变化,因此首选的解决方法是在useEffect调用之外对“ props”对象进行解构并引用这些特定的道具   内部使用效果effect-hooks / exhaustive-deps

我试图在数组中传递porps,但这样做却导致API调用无限循环

useEffect(() => {
            props.getUserInfoAction();
          }, [props]); 

1 个答案:

答案 0 :(得分:2)

如果props.getUserInfoAction()是一个动作,您应该这样做(而不是从connect接收):

import {getuserInfoAction} from './actionCreators'
import {useDispatch} from 'react-redux'

const Comp = () =>{
    const dispatch = useDispatch()

    useEffect(() =>{
        dispatch(getUserInfoAction())
    },[dispatch])
}

如果执行此操作,将导致前夕:

const {action} = props

功能将始终在渲染调用之间更改