【问题标题】:How do I navigate to specific screen by pressing android hardware back button in react native如何通过按 Android 硬件后退按钮在 React Native 中导航到特定屏幕
【发布时间】:2021-02-08 15:11:19
【问题描述】:

我是原生反应的新手。当我按下 android 硬件后退按钮时,我想导航或转到特定页面。可能吗 。如果是 请帮忙。谢谢

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    对于功能组件:

    useEffect(() => {
        const backHandler = BackHandler.addEventListener('hardwareBackPress', handleBack);
        return () => backHandler.remove();
      }, []);
    

    【讨论】:

    • 你应该检查我的答案。我已经添加了。
    • 这是一个编辑。当我写我的答案时不在那里......在我回答后 2 分钟编辑:)
    【解决方案2】:

    你可以像下面那样做;

    import {BackHandler} from 'react-native'
    

    然后在你的 react 组件中;

    constructor(props) {
        super(props)
        this.handleBackButtonClick = this.handleBackButtonClick.bind(this);
    }
    
    componentDidMount() {
        BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
    }
    
    componentWillUnmount() {
        BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
    }
    
    handleBackButtonClick() {
        this.props.navigation.navigate("your_screen");
        return true;
    }
    

    在反应钩子/功能组件中;

    import { BackHandler } from 'react-native';
    
    function handleBackButtonClick() {
        ... // do something
        return true;
      }
    
      useEffect(() => {
        BackHandler.addEventListener('hardwareBackPress', handleBackButtonClick);
        return () => {
          BackHandler.removeEventListener('hardwareBackPress', handleBackButtonClick);
        };
      }, []);
    

    【讨论】:

    • 此方法的任何其他替代方法
    • 或者只是告诉我在哪种情况下我的代码会出现问题。有时它不起作用。
    • 您已经对此发表了一个问题,我们进行了讨论。正如我在那里告诉你的那样,我在堆栈和抽屉导航器上都试过了,它工作正常,我要求上传更多代码。
    • 就这个问题而言,我的回答完全满足这一点。我用了很多次,效果很好。因此,您应该将此标记为已接受,并将注意力转向您的旧问题,因为那是实际问题
    猜你喜欢
    • 2022-08-20
    • 2020-11-02
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多