我在这个page上读到你不应该在render方法中创建函数。解决这个问题的一种方法是绑定。
我的构造函数如下所示:
constructor(props) {
super(props);
this.idCheckAlert = this.idCheckAlert.bind(this);
}
我创建的功能:
idCheckAlert = (idForAPI) => () => {
//does some stuff with the idForApi
}
在我的渲染中:
<TouchableOpacity
style={styles.inputButton}
onPress={() => {
const idForAPI = this.userId;
this.idCheckAlert(idForAPI);
}}
>
我目前的重构看起来像这样:
<TouchableOpacity
style={styles.inputButton}
onPress={this.idCheckAlert(this.userId)}
>
但是,我想在onPress中创建一个变量,但是当我这样做时,我会收到一条说明意外令牌的错误消息。有没有办法让我在onPress中创建一个变量,而不必创建函数?
答案 0 :(得分:0)
在onPress中创建变量不是一个好习惯,就像你说的那样,但是你可以在渲染之后做到这一点
const userId = 1;
return (
<TouchableOpacity
style={styles.inputButton}
onPress={this.idCheckAlert(userId)}
>
);