如上兩圖:在react組件中,已知其他環境都相同,僅僅是圖1多了一層箭頭函數,問:為何在本組件的scroll方法中,圖1形式取到this是本組件,圖2形式this卻是undefined?
2 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
這個問題得從class
說起。
當定義React組件時,extends React.Component
時,不會將this
繼承下來。所以你的第二個圖是this
是undefined
.
而ES6中的arrow function呢,默認在定義的時候會綁定this
。
使用this
一般有兩種做法。
直接使用箭頭函數
在constructor中綁定。
class {
constructor() {
super(...arguments);
this.myFunction = this.myFunction.bind(this);
}
render() {
return(
<div onClick={this.myFunction}></div>
)
}
myFunction() {
//
}
}
添加回答
舉報
0/150
提交
取消