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

发布于 2022-09-06 12:27:11 字数 631 浏览 28 评论 0

在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",)

但是上面的这种写法比较繁琐,所以改用下面这种写法,省去了绑定this

getMes = () => {
    //操作。。。。
}

但是用这个方法写,代码校验就会说getMes 没有被定义,请问怎么解决???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷乱花海 2022-09-13 12:27:11

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

proposal

孤独患者 2022-09-13 12:27:11

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

还不是爱你 2022-09-13 12:27:11

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文