我不明白为什么我在useClick 中遇到无限循环 我看到我使用setVal更改了useEffect内的状态值,但 useEffect 应该只在第二个参数中指定的 onClick 上工作。我认为这是因为我传递的参数 onClick 被记忆但没有调用回调(我使用console.log('go set')检查了这一点
function useClick(onClick, setVal, val) {
React.useEffect(() => {
console.log('Click');
setVal(val + 1);
}, [onClick]);
}
const Home = () => {
const [val, setVal] = React.useState(0);
const incrementOnClick = React.useCallback(() => {
console.log('go set');
setVal(val + 1);
} , [setVal, val]);
useClick(incrementOnClick, setVal, val);
return <div>
<div>{val}</div>
<button onClick={incrementOnClick}>Click me</button>
</div>
}