我有根据采样大小创建的数组列表。当我setState数组与整个新数组。我遇到了无限循环错误。
代码
const sampleData = _.fill(Array(200), 0)
const [value, setValue] = useState(sampleData)
setValue(value.fill(100)) // Error
错误
错误:重新渲染次数过多。 React限制了渲染次数以防止无限循环。
答案 0 :(得分:1)
在渲染期间,您不应调用从useState返回的setter函数。它们要么需要在hooks(useEffect,useCallback,useLayoutEffect)回调中调用,要么需要在非渲染阶段(如事件处理程序)中调用。
在这种情况下,您可以执行以下操作:
const sampleData = _.fill(Array(200), 0);
const [value, setValue] = useState(sampleData);
useEffect(() => {
setValue(value.fill(100)); // Error
}, []);