【学习react中遇到的坑:内存泄漏报错】

学习react中遇到的坑:内存泄漏报错

对就是这个错误
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 a useEffect cleanup function.
在网上找了一堆博客,清一色的说是异步之类的问题,什么组件销毁前清楚定时器啥的,但是我的问题不是这样的,我的报错不是因为异步,而是react中的组件逻辑渲染导致的

知道你们不喜欢看代码,我就不贴了【手动狗头】

1.就是我的页面里用三木运算符来控制那个组件显示(有一部分是混合组件)

2.然后三木判断的条件的变量使用useState定义的一个状态

3.这个状态我给了他一个初始值,能匹配到一个组件

4.初始化的时候在页面里使用useEffect,在里面获取地址栏参数并赋值给这个状态,
如果一开始地址栏的参数和状态默认值一样就不会出现这个错误,但是不一样就会报上面的一堆错误

问题的解决:

不用三木运算符,用&&短路并运算符,来独立判断各自自己的组件渲染,然后初始状态的默认值赋值为null(也就是一开始不匹配任何组件,ts项目注意状态的泛型,当然不是一定要是null,只要是跟组件渲染无关的值即可)

之后保存再次运行刷新,实验等,成功消除报错

おすすめ

転載: blog.csdn.net/weixin_54645575/article/details/124676939