我是React Native的新手。我想从反应原生的警报点击重定向。但是,仍然是错误 这是我的代码。感谢
render() {
return (
<View style={styles.Footer}>
<TouchableHighlight
onPress={() => Alert.alert(
'Logout',
alertMessage,
[
{text: 'Cancel', onPress: () => console.log('Cancel Pressed!')},
{text: 'OK', onPress: () => this.onButtonPress()},
]
)}>
<View style={styles.button}>
<Text style={styles.buttonTitle}>Logout</Text>
</View>
</TouchableHighlight>
</View>
);
}
onButtonPress() {
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'Home'})
]
})
this.props.navigation.dispatch(resetAction)
}
答案 0 :(得分:1)
您应该在父容器中包含onButtonPress
,然后将其作为支柱传递给执行代码为CustomDrawerContentComponent
的{{1}}。
目前您没有{text: 'OK', onPress: () => props.onButtonPress()}
。此外,您的功能超出了组件范围。
答案 1 :(得分:1)
您需要调用 onButtonPress 而不是 onButtonPress()
Alert.alert(
'FingerPrint Authentication',
'Would you like to authenticate using fingerprint ?',
[
{text: 'Cancel', onPress: () => console.log('Cancel Pressed!')},
{text: 'Yes', onPress: this.onButtonPress},
],
{ cancelable: false }
)
onButtonPress = () => {
this.props.navigator.push({
name: 'Home',
title: 'Home',
});
}
答案 2 :(得分:1)
看起来您需要将this
绑定到onButtonPress,以便它具有适当的范围。
constructor(props) {
super(props);
this.onButtonPress = this.onButtonPress.bind(this);
}