所以刚开始使用react-native
。我有一个如下构建的有状态组件:
class LoginView extends Component {
constructor(props) {
super(props);
this.state = {
inProgress: false
};
}
processLogin(){
this.setState({
inProgress: true
})
}
render() {
return (
<View style={styles.mainContainer}>
<View style={styles.loginContainer}>
<TextInput style={styles.input} placeholder="Password" />
<TouchableOpacity style={styles.button} onPress={() => this.processLogin()}>
{!this.state.inProgress && <Text style={styles.button_text}>Log in</Text>}/>}
</TouchableOpacity>
</View>
</View>
);}}
如您所见,我将可触摸不透明度的onPress
事件绑定到函数processLogin
。但是由于某种原因,该功能没有被触发!
state
不变,也尝试了console.log
但也没有触发。确保从TouchableOpacity
导入了React-Native
。
我猜我搞砸了装订。任何线索将不胜感激!
注意:仅在模拟器中尝试过此操作,尚未在真实设备中尝试过。
答案 0 :(得分:0)
代替在 onPress 道具上使用箭头功能,在声明业务功能 processLogin 时使用它 因此,确切地说,用:
代替此方法的声明。processLogin = () => {
this.setState({
inProgress : true
})
}
然后使用 onPress 方法,只需进行更改即可:
onPress = {this.processLogin}
相反,您指的是错误的 this 希望能帮到您 问候。