乐趣区

关于javascript:React-组件销毁后更新state导致内存泄漏

Warning: Can’t perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.

翻译过去意思是:不能在已销毁的组件中更新 state,这会导致内存透露。

自己在工作中遇到这个下面这个正告,起初认真查看了代码才发现,的确是我在已销毁的组件后,又在该销毁的组件中更新了 state。

逻辑大略是这样的:开新班页面(组件 A)有个抉择学员的选项,如果用户还没有学员,则点击增加学员按钮,会呈现增加学员的对话框(组件 B), 增加完学员后,敞开(销毁)组件 B, 而后从新获取学员,在增加学员时,会锁住增加学员按钮(this.setState({isAdding:true})),增加胜利后是先敞开了组件 B, 而后在将(this.setState({isAdding:false})), 而后就呈现了下面的正告,起初我把 this.setState({isAdding:false}) 这行代码去掉后,果然正告就没有了,而且这行代码基本就没有必要增加,因为组件 B 曾经销毁了,没必要再将 isAdding 设置为 false 了

退出移动版