gpt4 book ai didi

reactjs - react : why is that changing the current value of ref from useRef doesn't trigger the useEffect here

转载 作者:行者123 更新时间:2023-12-04 11:45:00 25 4
gpt4 key购买 nike

我有一个关于 useRef 的问题: 如果我添加了 ref.current进入 useEffect 的依赖列表,当我改变 ref.current 的值时, useEffect 内部的回调不会被触发。
例如:

export default function App() {
const myRef = useRef(1);
useEffect(() => {
console.log("myRef current changed"); // this only gets triggered when the component mounts
}, [myRef.current]);
return (
<div className="App">
<button
onClick={() => {
myRef.current = myRef.current + 1;
console.log("myRef.current", myRef.current);
}}
>
change ref
</button>
</div>
);
}
不应该是什么时候 useRef.current更改, useEffect 中的内容跑了?
还有 我知道 我可以用 useState这里。这不是我要问的。我也知道 ref在重新渲染期间保持引用不变,因此它不会改变。但我不是在做类似的事情
 const myRef = useRef(1);
useEffect(() => {
//...
}, [myRef]);
我把 current dep 列表中的值,因此应该更改。

最佳答案

https://reactjs.org/docs/hooks-reference.html#useref

Keep in mind that useRef doesn’t notify you when its content changes. Mutating the .current property doesn’t cause a re-render. If you want to run some code when React attaches or detaches a ref to a DOM node, you may want to use a callback ref instead.

关于reactjs - react : why is that changing the current value of ref from useRef doesn't trigger the useEffect here,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65016565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com