2017-10-03 19 views
0

私のプロジェクトではreact-native-router-fluxを使用しています。 私はログイン画面を持っています。オペレータは自分のユーザ名とパスワードを入力し、ログインボタンをクリックします。彼が正常に認証されると、Settings画面が表示されます。この画面に戻るボタンがあり、オペレータは再びログイン画面に戻ります。私は次の画面に移動する前に、バックスタックからログイン画面をポップする方法を探しています。これで、設定画面の戻るボタンをクリックすると、ホーム画面が表示されます。React Nativeの次の画面に移動する前に、現在の画面をポップするにはどうすればよいですか?

次のコードが正しく動作しないようです。どんな助けもありがとう。

private onLoginPress =(): void => { 
    ..... 

    // Display Settings screen if isValidatingForSettings is True otherwise display Home screen 
    NavigationActions.pop(); 
    navigate(this.props.isValidatingForSettings ? Types.navSettings : Types.navHome); 
} 

私のホームスクリーンはスタックをリセットします。 HomeScreen.componentDidMount()はチェックして設定にリダイレクトすることができますが、それはうんざりです。私はきれいな方法を探しています。

答えて

0

私の[送信]画面の[戻る]ボタンのカスタマイズでわかりました。 私が作成したrenderBackButton

<Scene 
    hideNavBar={ false } 
    key={ Types.Settings } 
    component={ SettingsScreen } 
    title={ I18n.t('settings') } 
    renderBackButton={() => renderBackButton}/> 

const renderBackButton =() => { 
    return (
    <TouchableOpacity 
     onPress={() => navigate(Types.navHome) }> 
     <Icon 
      name='angle-left' 
      size={ Metrics.icons.large } 
      color={ Colors.grayXS } 
      style={{ marginTop: -10 }} 
     /> 
    </TouchableOpacity> 
); 
} 

export default renderBackButton(); 

、その後は、この画面のSceneにそれを割り当て

関連する問題