3

使用react-native-router-flux,用户成功登录后,我想禁用后退按钮返回登录屏幕。但我似乎无法找到获取当前“场景”或“堆栈”的方法,然后进行一些登录:

backAndroidHandler={() => {
                        if (currentScene === afterLoginScreeen) {
                         return true;   
                        }
                    }}

有没有人设法处理这个问题?

4

3 回答 3

14

根据我对 react-native-router-flux 的经验,我曾经使用过

场景中的 type={ActionConst.RESET}

<Scene duration={0} key="main" component={Main} title="Some Title" type={ActionConst.RESET} />

它应该是您需要避免的返回登录屏幕

ActionConst 和 Scene.type 解释

于 2017-01-22T19:03:57.027 回答
1

用这个

<Scene key="Screen1" type="replace" component={Screen1} /> 
于 2020-04-14T22:35:46.327 回答
1

这对我有用

import {BackHandler} from 'react-native';

UNSAFE_componentWillMount() {
    BackHandler.addEventListener("hardwareBackPress", this.handleBackButton);        
  }

handleBackButton = () => {
             // Do nothing
             return true;
  };

更新:由于 componentWillMount 已被弃用,所以应该使用 useEffect 挂钩

于 2020-04-21T17:10:47.793 回答