Javascript 如何设置';硬件备份出版社';到另一个堆栈
Javascript 如何设置';硬件备份出版社';到另一个堆栈,javascript,react-native,navigation,react-native-android,addeventlistener,Javascript,React Native,Navigation,React Native Android,Addeventlistener,如何设置“hardwareBackPress”EventListener以导航到另一个StackNavigator。如果我像上面那样设置。此反压可在所有页面中工作。我只想为TermsPage设置此侦听器。并将此侦听器设置为导航到另一个StackNavigator您可以使用此示例,这里我们在构造函数中绑定此方法,并在屏幕渲染时调用此函数 constructor(props) { super(props); this.handleBackButtonClick =
如何设置“hardwareBackPress”EventListener以导航到另一个StackNavigator。如果我像上面那样设置。此反压可在所有页面中工作。我只想为TermsPage设置此侦听器。并将此侦听器设置为导航到另一个StackNavigator您可以使用此示例,这里我们在构造函数中绑定此方法,并在屏幕渲染时调用此函数
constructor(props) {
super(props);
this.handleBackButtonClick = this.handleBackButtonClick.bind(this);
this.state = {
};
}
componentWillMount() {
BackHandler.addEventListener(
'hardwareBackPress',
this.handleBackButtonClick,
);
}
componentWillUnmount() {
BackHandler.removeEventListener(
'hardwareBackPress',
this.handleBackButtonClick,
);
}
handleBackButtonClick() {
this.props.navigation.navigate('name of page where you want to nav');
return true;
}
从你不想回去的地方用这个
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton);
}
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
}
handleBackButton() {
return true;
}
它不会让您从您所在的页面返回,请从react native导入BackHandler。
希望有帮助,请不要怀疑。我使用函数
pop()
解决了这个问题。
在页面中,我想去的地方添加了另一个堆栈
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({
routeName: 'BottomTabNav',
params:{showTerms:false}
}),
],
});
在另一页
handleBackButtonClick() {
// @ts-ignore
this.props.navigation.pop();
return true;
}
``` And voila
我喜欢你们的代码,但在那个里,当我在这个堆栈的另一个屏幕上点击后退按钮时,我再次回到我编写的那个些堆栈。那是我的问题
handleBackButtonClick() {
this.props.navigation.dispatch(resetAction);
return true;
}
handleBackButtonClick() {
// @ts-ignore
this.props.navigation.pop();
return true;
}
``` And voila