我正在创建一个react组件,并且在此组件中,我将箭头函数用于类方法和生命周期挂钩。我正在为同一文件编写单元测试用例。但是问题是当我用旧的javascript方式编写生命周期挂钩时,例如
componentDidMount(){
...Here
}
并运行测试范围,然后此生命周期方法将自动获得覆盖。但是当我这样写的时候
componentDidMount = () => {
...Here
}
并且运行代码覆盖率,单元测试中没有涉及它,并显示“声明不包含”。
所以我的问题是,编写单元测试用例时,这两种方式有什么区别?
有很大的区别,第一个创建方法,第二个创建属性而不是方法,因此它在原型中不存在。
您可以通过在构造函数中绑定它来使用它,但是生命周期事件中的箭头功能会损害性能。