2017-05-31 46 views
0

我在我的应用程序中使用了React-Navigation,并且找不到办法做几件事。 首先,我想改变过渡动画,但我无法找到这样做,如果你们能帮助我,我会很高兴。反应导航 - 动画,替换屏幕和标签

其次,我有一个登录屏幕,登录时,用户被移动到主屏幕,在主屏幕上我得到一个后退按钮,所以我可以再次登录(我不想)我使用此代码尝试:

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

,但它不会工作,什么都不会发生(它不会导航到家庭),只有当我使用navigate("Home");它定位到家里。

这是导航(内部渲染):

const { navigate } = this.props.navigation; 

第三,我有几个屏幕(登录,注册,家庭和朋友),这是我的StackNavigator:

const Stylelist = StackNavigator({ 
    Login:{ 
    screen: LoginScreen, 
    navigationOptions: ({navigation}) =>({ 
     header: null, 
    }), 
    }, 
    Register:{ 
     screen: RegisterScreen, 
     navigationOptions: ({navigation}) =>({ 
     header: null, 
     }), 
    }, 
    Home:{ 
    screen: HomeScreen, 
    navigationOptions: ({navigation}) =>({ 
     header: "float", 
     title: "Home", 
    }), 
    }, 
}); 

我想要的主屏幕也成为TabNavigator的一部分(与朋友屏幕。) 我搜索了网页,但无法找到如何做到这一点。 你们能帮我吗?给我提供信息来源/例子。 在此先感谢!

回答

3

这应该删除后退按钮看到doc

import { NavigationActions } from 'react-navigation'; 


    handlePress(){ 
     firebaseRef.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(function(firebaseUser){ 
      //Success, move to homepage. 
      const resetAction = NavigationActions.reset({ 
      index: 0, 
      actions: [ 
      NavigationActions.navigate({ routeName: 'Home'}) 
      ] 
     }) 
     this.props.navigation.dispatch.(resetAction); 
     }).catch(function(error){ 
      //Failed to log in, print error. 
     }); 
     } 
+0

谢谢你,伟大的工作。 –

+0

@JohnDoah,你的欢迎 –