【发布时间】:2020-05-09 22:36:21
【问题描述】:
我在这里做了一个例子: https://codesandbox.io/s/cocky-brattain-de5r4
当我从一个切换到另一个时,我正在制作一个选项卡式界面,组件应该首先通过useEffect返回函数取消注册自己(从父状态清除一些值),然后重新注册自己(在父母)。但是,清理似乎不起作用。即在注册函数开始之前该值不会改变。
查看控制台日志,它第一次记录一个空对象,作为初始值。但是当点击 tab20 时,记录的值会显示注销前的值。
这里有什么问题?
我期望发生的是:
(应用程序加载)-> 控制台日志:{} -> [register]aaa 设置为 1 ->(切换选项卡)-> [unregister]aaa 设置为未定义 -> 控制台日志:{aaa: undefined(但它是 1)} -> [注册]aaa 设置为 1
【问题讨论】:
-
您期望什么日志记录?
-
应该是{aaa: undefined},因为调用了unregister -> console log -> register,所以console log应该显示unregister之后register之前的值
标签: javascript reactjs react-hooks use-effect