小编lan*_*ibe的帖子

如何使用 useRef 来引用最新值

人们使用 useRef 来保存最新的值,如此代码

function MyComponent({ value }) {
  const valueRef = useRef();
  useEffect(() => {
    valueRef.current = value;
  });
}
Run Code Online (Sandbox Code Playgroud)

我知道 useEffect 需要并发模式。

并且 useEffect 按照定义的顺序执行

function MyComponent({ value }) {
  useEffect(() => {
    console.log('log1');
  });
  useEffect(() => {
    console.log('log2');
  });
}
// result is
// log1
// log2
Run Code Online (Sandbox Code Playgroud)

所以在下面的代码中,log1 用旧值打印,log2 用新值打印

function MyComponent({ value }) {
  const valueRef = useRef();
  useEffect(() => {
    console.log('log1', valueRef.current);
  });
  useEffect(() => {
    valueRef.current = value;
  });
  useEffect(() => {
    console.log('log2', valueRef.current);
  }); …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

react-hooks ×1

reactjs ×1