删除 'Back' 按钮

Removing 'Back' button

我正在使用 React-Navigation,但我在使用导航栏时遇到了问题。 我有一个名为 LoginScreen 的页面,它在用户登录后将其移动到 HomeScreen。 我遇到的问题是我在主屏幕上有一个 'back' 按钮,所以我可以返回登录屏幕(我不想要)这是代码:

LoginScreen(我导航到主屏幕的地方):

handlePress(navigate){
    firebaseRef.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(function(firebaseUser){
      //Success, move to homepage.
      navigate("Home");
    }).catch(function(error){
      //Failed to log in, print error.
    });
}

导航在里面 render():

const { navigate } = this.props.navigation;

这是我调用 handlePress 的地方:

<TouchableOpacity style={styles.logBtn} onPress={()=>this.handlePress(navigate)}>
  <Text style={styles.logTxt}>
  Login
  </Text>
</TouchableOpacity>

我搜索了一下并尝试在 handlePress 中写入 navigate.replace("Home");,但它就是无法导航。

我做错了什么?

我认为你最好的办法是重置导航,你可以通过重置来完成:

import { NavigationActions } from 'react-navigation';


    const resetAction = NavigationActions.reset({
      index: 0,
      actions: [
        NavigationActions.navigate({ routeName: 'Home'})
      ]
    })
    this.props.navigation.dispatch.(resetAction);

您可以在此处找到它或阅读更多相关信息 react-navigation-doc

或者您可以更改后退按钮图标及其在主屏幕导航配置中的功能

static navigationOptions  = {
        title: 'Home',
        header: ({ navigate }) => {
        {/* left here refers to the left back button */}
            let left = (
                <TouchableOpacity onPress={() => navigate('Profile')} >
                    <Icon name="ios-menu-outline"
                    size={25} style={{ paddingRight: 5, paddingLeft: 20 }}
                    color="#ffffff" />
                </TouchableOpacity>
            );
            let style = { backgroundColor: '#00AFEF',elevation: 0,shadowOpacity: 0,};
            let titleStyle = { color: '#ffff', fontSize: 25, fontFamily: 'Arial' };
            return { left, style, titleStyle }
        },
    }
static navigationOptions={
    title:'Categories',
    headerLeft: (<View></View>),   };

适合我 ;)