它只显示警报消息Idk why。这就是代码。
处理注册的功能不起作用。我尝试过各种方法,但都解决不了。我是一名初级网络开发人员,无法解决这个问题。我应该用胡克,但我喜欢接力。
class Login extends Component {
state = {email: "", password:"", userdata:{}}
handleSignUp(email,password) {
Alert.alert(
'Alert Title',
'My Alert Msg',
[
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel',
},
{text: 'OK', onPress: () => console.log('OK Pressed')},
]
);
}
<Button title="Ciao" onPressButton ={this.handleSignUp(this.state.email,this.state.password)} style={styles.button}></Button>
{/*<TouchableOpacity onPress ={this.handleSignUp(this.state.email,this.state.password)} style={styles.button} >
<Text >Registrati</Text>
</TouchableOpacity>*/}
</View>
)
}
}
您从哪里获得Button组件?可以从react native导入的默认Button没有onPressButton
属性。您应该尝试使用onPress
您需要将函数传递给onPress道具。
在你的例子中,你不传递函数,但它的返回值会导致你正在执行它。如果你不传递一个函数,onPress就没有什么可执行的,它实际上只不过是一个回调。
你应该写这样的东西:
onPressButton={() => this.handleSignUp(this.state.email,this.state.password)}
此外,由于避免直接在jsx中编写函数是一种很好的做法,因此您应该考虑如下重写函数:
handleSignUp() {
const {email, password} = this.state;
Alert.alert(
'Alert Title',
'My Alert Msg',
[
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel',
},
{text: 'OK', onPress: () => console.log('OK Pressed')},
]
);
}
然后你可以简单地写:
onPressButton={this.handleSignUp}