有两个方法写在
class App extends Component {
A(){
xxxx
};
B(){
this.A();
};
A B 都是自定义的方法,不是周期函数
出错了,。。。 看了下是this 指向不对。因为B方法其实被传到了子组件里,触发也在子组件
那怎么样能把A 和B 里的 this 都指向当前环境勒。。。
有两个方法写在
class App extends Component {
A(){
xxxx
};
B(){
this.A();
};
A B 都是自定义的方法,不是周期函数
出错了,。。。 看了下是this 指向不对。因为B方法其实被传到了子组件里,触发也在子组件
那怎么样能把A 和B 里的 this 都指向当前环境勒。。。
方法一, 在构造函数中绑定:
constructor() {
this.A = this.A.bind(this);
}
方法二, 用箭头函数:
class App {
A = () => {}
}
赞同 @suisuijiang 的回答
需要安装 babel-preset-stage-0 才能使用箭头函数
在.babelrc 配置中加入
其实比较推荐在 constructor() 中进行绑定,有两个好处:
1、清晰的看见组件内需要动作触发的方法有哪些
2、便于文档生成工具进行生成js文档
箭头函数的好处就是:
比较帅