因为js的问题,react类组件需要绑定this,否则类方法的this可以修改
class Person {
name;
age;
constructor(name, age) {
this.name = name
this.age = age
}
sayThis () {
console.log(this);
console.log(this.name);
}
}
let p1 = new Person("GSS", 12)
p1.sayThis()//Person {name: 'GSS', age: 12} "GSS"
let obj = {
name: "wyw",
}
p1.sayThis.apply(obj)//obj "wyw"尝试绑定一下this
class Person {
name;
age;
constructor(name, age) {
this.name = name
this.age = age
this.sayThis=this.sayThis.bind(this)
}
sayThis () {
console.log(this);
console.log(this.name);
}
}
let p1 = new Person("GSS", 12)
p1.sayThis()//Person {name: 'GSS', age: 12} "GSS"
let obj = {
name: "wyw",
}
p1.sayThis.apply(obj)//Person {name: 'GSS', age: 12, sayThis: ƒ} GSS可以发现最后的apply失效了,this并没有改变,所以我们可以通过这种方式保持this
文章讨论了在JavaScript中,特别是在React类组件里,由于this的上下文问题,需要手动绑定this以确保方法能正确访问到组件实例的属性。通过示例展示了未绑定和使用bind(this)后的区别,说明了bind(this)如何保持方法内的this指向不变,防止在回调或应用上下文中丢失正确的引用。

被折叠的 条评论
为什么被折叠?



