Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置';硬件备份出版社';到另一个堆栈_Javascript_React Native_Navigation_React Native Android_Addeventlistener - Fatal编程技术网

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