一.箭頭函數
1.無參
//無參箭頭函數
press = () => {
this.setState({
data: 1
})
};
正確調用:
直接使用函數名,因爲整個函數賦值給了press,使用press代表箭頭函數,這樣不會出現初始化時自動調用
<Text onPress={this.press} >{this.state.data}</Text> //正確
錯誤調用:
函數名後面加括號則代表了直接調用改函數,會自動調用該方法
<Text onPress={this.press()} >{this.state.data}</Text>//錯誤
這樣寫不會自動調用,但是有點多此一舉,
<Text onPress={()=>this.press()} >{this.state.data}</Text>//正確
2.有參
//有參箭頭函數
press = (num) => {
this.setState({
data: num
})
};
有參只能通過箭頭函數的方式調用,因爲加括號會直接調用函數
<Text onPress={()=>this.press(num)} >{this.state.data}</Text>//正確
二.普通函數
1.無參
press() {
this.setState({
data: 1
})
};
正確調用:
需要加括號來調用,不自動調用
<Text onPress={() => this.press()} >{this.state.data}</Text>
或者
<Text onPress={this.press.bind(this)} >{this.state.data}</Text>
錯誤調用:
不用箭頭函數方式會自動調用
<Text onPress={this.press()} >{this.state.data}</Text>
2.有參
press(num) {
this.setState({
data: num
})
};
正確調用:
需要加括號來調用,不自動調用
<Text onPress={() => this.press(num)} >{this.state.data}</Text>
或者
<Text onPress={this.press.bind(this,num)} >{this.state.data}</Text>
錯誤調用:
不用箭頭函數方式會自動調用
<Text onPress={this.press(num)} >{this.state.data}</Text>