关于hooks中uesEffect的eslint问题

来源:10-1 什么是Hooks以及他的用法

慕桂英7937985

2021-11-06

老师,请问一下,根据官网中的eslint配置Hooks(https://react.docschina.org/docs/hooks-rules.html),在eslint中配置了 “react-hooks/exhaustive-deps”: “warn” // 检查 effect 的依赖,在useEffect使用异步请求获取数据之后,更新state时,就一直提示effect的依赖警告
React Hook useEffect has missing dependencies: ‘getList’ Either include them or remove the dependency array

const getTodoList = (props) =>{
const [list, setList] = React.useState([]);
const {detail} = props;
useEffect(() =>{
getList();
},[detail.id])
}

const getList = async() => {
if(detail.id){
const result = await fetch(/api/getList/${detail.id});
setLilt(result.data);
}
}

写回答

1回答

Jokcy

2021-11-07

你在useEffect里面使用了getList了呀,所以也要放在第二个参数的数组里面

0
1
慕桂英7937985
我把getList放在第二个参数中还是会提示相同的提示 React.useEffect(() =>{ getList(); },[id, getList()]); 不加()时,getList这个函数中则出现这个提示这个警告,The 'getList' function makes the dependencies of useEffect Hook (at line 63) change on every render. To fix this, wrap the definition of 'getList' in its own useCallback() Hook. React.useEffect(() =>{ getList(); },[id, getList])
2021-11-07
共1条回复

React源码深度解析 高级前端工程师必备技能

掌握React源码,让你的开发水平没有上限,更不惧前端未来的到来

1749 学习 · 336 问题

查看课程