【发布时间】:2019-12-28 15:31:54
【问题描述】:
回调函数设置组件状态。但有时提供数据的订阅需要结束。因为回调是异步执行的,所以它不知道订阅是否在服务调用(它执行回调函数)之后结束。
然后我在控制台中看到以下错误:
警告:无法对未安装的组件执行 React 状态更新。 这是一个空操作,但它表明您的应用程序中存在内存泄漏。 要修复,请取消 useEffect 中的所有订阅和异步任务 清理功能。
有没有办法访问组件状态,即使我在回调函数中?
这将是步骤:
- 带参数订阅
- 退订
- 组件已卸载
- 订阅的服务执行回调函数
- 回调函数在未安装的组件中设置状态,并在上面给出错误
【问题讨论】:
-
我猜你使用hooks useState 你可以使用useEffect (错误提示)返回一个cleanup function 来改变一个mounted variable 并检查that variable before calling the useState function
标签: reactjs