为了账号安全,请及时绑定邮箱和手机立即绑定

react组件写法的区别,以及代码的校验不通过?

react组件写法的区别,以及代码的校验不通过?

慕妹3242003 2019-03-08 18:11:40
在react中我们命名组件中的方法的时候有很多中,例如第一种class Header extends React.Component { constructor (props) {    super(props)    //(1处)    this.getMes = this.getMes.bind(this)    this.state = {    }  }  //方法  getMes() {    //操作。。。。。 绑定this,可以在上面(1)处或者(2)处  }  render(){    return(      <div onClick={this.getMes.bind(this)}>(2)处</div>    )  }}上述的两种写法都可以通过standard的代码校验,(standard配置"parser": "babel-eslint",)但是上面的这种写法比较繁琐,所以改用下面这种写法,省去了绑定thisgetMes = () => {    //操作。。。。}但是用这个方法写,代码校验就会说getMes 没有被定义,请问怎么解决???
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

在 class 里面直接定义 getMes = () => {} 这是目前 stage 3 Class properties的写法
你得先看看自己是否配置了恰当的 babel 支持
babel plugin

proposal


查看完整回答
反对 回复 2019-03-13
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

getMes = () => {} 相对于在 jsx 中 bind 拥有更好的性能
至于 eslint 语法校验问题,检查你的 eslint 配置文件,或者直接关闭它


查看完整回答
反对 回复 2019-03-13
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你需要用const定义getMes函数,即const getMes = () => {}


查看完整回答
反对 回复 2019-03-13
  • 3 回答
  • 0 关注
  • 464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号