背景:用的webpack+react一系列这是我在写react时发现的问题,class里面能写等号赋值?即竟有下面的第二种操作?我想知道第二种操作为什么不报错import React, {Component} from 'react';export default class RefundDetails extends Component { render(){ return ( <div>121221</div> ); }}import React, {Component} from 'react';export default class RefundDetails extends Component { render=()=>{ return ( <div>121221</div> ); }}难道说,第一种是第二种的简写?但是,我在babel在线编译发现,这会报错的另外浏览器里类似的声明类方法也会报错
3 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
实际上,这个算是个实验属性,可以理解为不用手动的在构造器上为函数手动绑定 this。
就像下面的两种写法,一定 程度上算是等价的
class Example {
doSomething = () => {
// ...
}
}
class Example {
constructor() {
this.doSomething = this.doSomething.bind(this);
}
doSomething() {
// ...
}
}
慕森卡
TA贡献1806条经验 获得超8个赞
那必须是可以的,只是需要配置babel。原来的函数类似:
function render(){
//do something
}
在es6中可以将函数进行简写:
render(){
//do something
}
或
render = ()=>{
//do something
}
添加回答
举报
0/150
提交
取消
