reactjs - React 清理功能,有什么问题?
问题描述
关于 react with useEffect 帮助的官方文档清理功能应该只调用一次并且在组件被销毁之前。
因此,关于这些信息,我制作了一个组件并放置了一些代码,例如让它成为下一个
useEffect(() => {
console.log('didmount')
return () => {
console.log('will unmount2')
}
})
我希望看到几个 didmount 控制台,这取决于我要更改它的道具的次数,并且在我更改路线之前只有一个“将 mount2”,因此组件将被销毁,但实际结果是下一个
我刚刚错过了什么?
解决方案
您没有理解或完全阅读文档。
此外,如果一个组件多次渲染(通常是这样),则在执行下一个效果之前会清除前一个效果。在我们的示例中,这意味着每次更新都会创建一个新订阅。
更改道具会导致组件重新渲染。这反过来会导致执行清理功能。
对于您的示例,这意味着您应该在控制台中看到服务器didmount
,will unmount2
具体取决于组件重新渲染的次数。
推荐阅读
- javassist - 如何定义一个新方法并拦截和委托对该方法的调用?
- mysql - mysql中的有线子查询
- python-3.x - 如何在 Mac 上安装 python pdal?
- ios - Swift iOS背景颜色视图动画作为计时器
- c++ - 如何让我的代码从矩阵中输出非零元素?
- apache-tika - Apache Tika 无法从 PDF 中正确提取印度语言的文本
- javascript - JQUERY:从 URL 获取 JSON 数据
- laravel - 如何在 elequent 模型的验证规则上使用配置变量?
- obiee - 是否可以在 OBIEE 11g 仪表板提示中使用数千个分隔符?
- ios - iOS MFMailComposeViewController 未附加文件