react组件写法的区别,以及代码的校验不通过?
在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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在
class
里面直接定义getMes = () => {}
这是目前stage 3 Class properties
的写法你得先看看自己是否配置了恰当的
babel
支持babel plugin
proposal
getMes = () => {}
相对于在 jsx 中 bind 拥有更好的性能至于 eslint 语法校验问题,检查你的 eslint 配置文件,或者直接关闭它
你需要用const定义getMes函数,即const getMes = () => {}