我有 useEffect,但我不明白为什么当 props 更改时不调用 useEffect,但调用 render 。我有这样的东西,“ block ”是对象:
const { block } = props;
useEffect(() => {
setTimeout(() => {
if (inputRef.current) {
inputRef.current.focus();
}
});
}, []);
感谢您的帮助!现在,我有下一个问题)当 block 更改并调用渲染时,我的 inputRef 为 null:
const { block } = props;
const inputRef = useRef(null);
useEffect(() => {
setTimeout(() => {
if (inputRef.current) {
inputRef.current.focus();
}
});
}, [block, inputRef]);
...
<SomeComponent
inputRef={inputRef}
/>
最佳答案
因为你的 useEffect 没有参数。如果将第二个参数作为空数组传递,则仅在安装组件时才会触发。
关于javascript - 为什么useEffect没有被调用,当props改变时,render被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59493868/