老师, 为什么本组件的useState 无法保存 oldTitle的状态

来源:8-2 ⽤useRef实现useDocumentTitle - useRef与Hook 闭包详解(下)

慕侠9157770

2021-02-08

老师, 为什么本组件的useState 无法保存 oldTitle的状态

例如代码

  const [oldTitle, setOldTitle] = useState('');
  useEffect(() => {
    setOldTitle(document.title)
    console.log("oldTitle", oldTitle || 'not done')

  }, [])
  useEffect(() => {
    console.log("start", document.title || 'undefined')

    document.title = title;
    return () => {
      console.log("oldTitle", oldTitle);
      if (!keepOnceUnmounted) {
        document.title = oldTitle;
      }
    }
  }, [keepOnceUnmounted,  title])

是应为setOldTitle 和这里的useEffect里的return 都是一个时间戳的吗?
oldTitle 无法没被记录下来

写回答

1回答

Nolan

2021-02-08

Hi, 这样做当然是可以的,这里用useRef是因为useRef更简洁,而且可以给大家介绍useRef的用法

0
0

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程