我正在使用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]);
答案 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
功能将始终在渲染调用之间更改