【发布时间】:2021-06-06 18:30:15
【问题描述】:
我有一个这样的字段
const SimpleReactComponent = (props) => {
const [title, setTitle] = useState('DEFAULT')
useEffect(() => {
return () => {
// unmount
console.log(`[${title}] while unmounting`)
}
}, [])
return <TextInput value={title} onChangeText={title => setTitle(title)}></TextInput>
}
当我修改 title 字段并离开该组件时,它仍然会打印以下内容
[DEFAULT] while unmounting
虽然我期待的是新修改的值而不是 DEFAULT。
如何在组件卸载时捕获更改?
【问题讨论】:
-
请研究更多关于 Hooks 依赖的信息。在我看来,这就是问题所在。 reactjs.org/docs/…
-
将
title添加到该钩子的依赖项中。这应该告诉 React 在title更改时运行此useEffect -
由于“陈旧关闭”而显示初始值。相关:stackoverflow.com/a/66435915/2873538
标签: reactjs react-native use-effect use-state