可以通过依赖来解决
无限循环可以通过正确管理useEffect(callback, dependencies)
依赖项参数来修复。
因为我们希望count
在值更改时增加,所以可以简单地将value
作为副作用的依赖项。
import { useEffect, useState } from ‘react‘;
function CountInputChanges() {
const [value, setValue] = useState(‘‘);
const [count, setCount] = useState(-1);
useEffect(() => setCount(count + 1), [value]);
const onChange = ({ target }) => setValue(target.value);
return (
<div>
<input type="text" value={value} onChange={onChange} />
<div>Number of changes: {count}</div>
</div>
);
}
添加[value]
作为useEffect
的依赖,这样只有当[value]
发生变化时,计数状态变量才会更新。这样做可以解决无限循环。