react redux 订阅模式报错解决方法

1,错误原因

//订阅模式
    this.cancelSub = store.subscribe(() => {
      this.setState(store.getState());
    });

众所周知redux 订阅模式可以在store发生改变的时候,回调方法但是页面且回去的时候会报错

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.

2,解决方法

需要在页面卸载的时候调用取消订阅方法

取消订阅的方法就是订阅方法的返回值

cancelSub = () => {};
  
  componentDidMount() {
    //订阅模式
    this.cancelSub = store.subscribe(() => {
      this.setState(store.getState());
    });
  }
  componentWillUnmount() {
    this.cancelSub();
  }

 

 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. "Cannot read property 'xxx' of undefined" 这通常是由于在使用组件或变量之前没有初始化它们所致。解决方法是确保在使用变量或组件之前初始化它们。 2. "Unexpected token" 这通常表示代码存在语法错误。解决方法是检查代码并纠正语法错误。 3. "Invalid hook call" 这通常是由于在条件语句或循环使用钩子函数所致。解决方法是确保在使用钩子函数时遵循规则。 4. "Maximum update depth exceeded" 这通常是由于组件无限循环地重新渲染所致。解决方法是检查组件是否在渲染过程引入了循环依赖。 5. "Failed to compile" 这通常是由于代码存在语法错误或不完整的代码所致。解决方法是检查代码并纠正错误。 6. "Module not found" 这通常是由于代码引用了不存在的模块或文件所致。解决方法是确保代码引用的模块或文件存在。 7. "TypeError: xxx is not a function" 这通常是由于使用了错误的数据类型所致。解决方法是确保使用正确的数据类型。 8. "Network error" 这通常是由于网络连接问题所致。解决方法是检查网络连接并确保它正常运作。 9. "Element type is invalid" 这通常是由于组件的名称被错误地引用所致。解决方法是确保正确地引用组件。 10. "State updates from an unmounted component" 这通常是由于在组件卸载后继续更新组件状态所致。解决方法是确保在组件卸载后停止更新状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值