React添加路由跳转之后发生的错误

来源:6-3 React-Router 代码部分

笔落_Qian

2018-12-17

老师您好,我有一个问题:
我根据您的方式,在MonthPicker.js中添加的点击其他地方也会收回下拉框的选项:
图片描述
然后在看React路由部分的时候,就出问题了。
React路由部分的代码如下:
图片描述
点击Home的时候是正常的,但是点击Create和Edit的时候就会报错了,错误信息如下:
图片描述请问这个问题的产生的原因是什么呢?以及如何解决呢?谢谢。

写回答

1回答

张轩

2018-12-17

同学你好,我当时加那几个导航连接的时候,还没有添加MonthPicker 其中的那一段逻辑,那节课学习完后我就删除了这几个链接,所以当时没有发现这个问题,非常感谢你提出的这个问题,那我现在没法重现这个问题,我从出错信息进行分析,

1 应该是触发这个方法的时候 this.node 应该被销毁了, 他已经是 null了,所以我们在null 上面调方法就报错了,我建议你在 handleClick 中添加一个断点,看看他是什么时候被触发的,是不是页面跳转的过程中被触发,然后这个时候 this.node 已经没有了

2 刚才试了一下,你有可能是 

  componentWillUnmount() {
    document.removeEventListener('click', this.handleClick, false)
  }

写错了,我刚才注释了这一行,和你出现一样的错误,这个会造成事件没有回收,在 Create 页面触发了这个事件,这个时候 this.node 已经销毁,所以就会报错了。

1
0

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程