TouchableOpacity onPress不起作用(仿真器测试)

时间:2020-08-05 19:23:43

标签: reactjs react-native

所以刚开始使用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

我猜我搞砸了装订。任何线索将不胜感激!

注意:仅在模拟器中尝试过此操作,尚未在真实设备中尝试过。

1 个答案:

答案 0 :(得分:0)

代替在 onPress 道具上使用箭头功能,在声明业务功能 processLogin 时使用它 因此,确切地说,用:

代替此方法的声明。
processLogin = () => {
    this.setState({
        inProgress : true
    })
}

然后使用 onPress 方法,只需进行更改即可:

onPress = {this.processLogin}

相反,您指的是错误的 this 希望能帮到您 问候。