【发布时间】:2019-10-11 05:42:45
【问题描述】:
我需要调用两个函数来仅在第一次渲染时获取数据。我在这个项目上使用了 react-hooks。所以代码看起来像这样:
const Component = (props) => {
// init
useEffect(() => {
const fetchA = async () => {
await props.fetchA()
};
const fetchB = async () => {
await props.fetchB()
};
fetchA();
fetchB();
}, []);
}
fetchA 和 fetchB 是 redux 执行的操作,用于发出请求并将数据保存到 reducer。
然后我将 eslint-react-hooks 添加到项目中。现在 eslint 警告我
块引用 React Hook useEffect 缺少一个依赖项:'props'。要么包含它,要么删除依赖数组。但是,当 any 道具发生变化时,“道具”会发生变化,因此首选的解决方法是在 useEffect 调用之外解构“道具”对象,并在 useEffect 中引用那些特定的道具。
是否只有通过将// eslint-disable-next-line react-hooks/exhaustive-deps 应用到 useEffect 依赖项之前的行来做到这一点?
【问题讨论】:
标签: javascript reactjs eslint react-hooks use-effect