老师, 为什么本组件的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的用法
00
相似问题