我有一个使用useEffect()钩子的React组件:
const [stateItem, setStateItem] = useState(0);
useEffect(() => {
if (condition) {
myFunction();
}
}, [stateItem]);
const myFunction = () => {
return 'hello';
}
React提醒我'myFunction'是一个缺失的依赖项。我(认为我)理解为什么会出现这个警告,我已经阅读了许多类似的问题,询问更多或更少相同的事情,但答案总是“将您的函数移到useEffect hook”。如果不考虑myFunction被从不同的地方调用,例如:
...
return (
<Button onClick={() => myFunction()} />
);
因此,我不能将我的函数放在useEffect钩子内部。
对于类似的问题,一种解决方法是将函数放在组件外部,但这需要我传递大量数据给我的函数,例如
const myFunction(stateItem, setStateItem, someProp) => { stuff };
当有多个带有许多props、state hooks等的函数时,这变得非常繁琐。除了在useEffect钩子上方放置linter ignore注释之外,还有什么更实际的做法吗?我发现这些东西使使用React hooks变得非常不实用。