2017-11-06 3 views
0

を反応させますタブナビゲータに入ってからスタックナビゲータに戻る方法は?私はたonPress使用していますのはここトラブルは、私は私のスタックナビゲータの画面にタブナビゲータから移動しようとしているが、私はこのエラーを取得していますネイティブ

は次のとおりです。

以下
constructor(props){ 
    super(props); 
    this.state = { 
     filteredCellArray: [], 
     masterCellArray: [] 
    }; 
    this.onProfileButtonPressed = this.onProfileButtonPressed.bind(this); 
} 

onProfileButtonPressed =() => { 
    this.props.navigation.navigate('Profile', this); 
    console.log("Profile Button Pressed"); 
}; 

スタックおよびタブナビゲータを持つルータです::

const TabNav = TabNavigator({ 
    Profile:{ 
    screen: Profile, 
    tabBarOptions: { 
     showLabel: false 
    } 
    }, 
    Books:{ 
    screen: BookTab 
    }, 
    Tutors:{ 
    screen: TutorTab 
    }, 
    Furniture:{ 
    screen: FurnitureTab 
    }, 
    Roommate:{ 
    screen: RoommateTab 
    }, 
    Carpool:{ 
    screen: CarpoolTab 
    }}, 
    { 
    tabBarComponent: TabBarBottom, 
    tabBarPosition: 'bottom', 
    swipeEnabled: false, 
    animationEnabled: false, 
    lazy: true, 
    initialRouteName: 'Books' 
}); 

export const FeedStack = StackNavigator({ 
    SignIn: { 
    screen: SignIn, 
    navigationOptions: { 
     title: "Login" 
    } 
    }, 
    SignUp: { 
    screen: SignUp, 
    navigationOptions: { 
     title: "Create An Account" 
    } 
    }, 
    ForgotPassword: { 
    screen: ForgotPassword, 
    navigationOptions: { 
     title: "Forgot Password" 
    } 
    }, 
    Profile: { 
    screen: Profile, 
    navigationOptions: { 
     title: "Your Profile" 
    } 
    }, 
    TabNav: { 
    screen: TabNav, 
    navigationOptions: { 
     title: "Home" 
    } 
    }, 
    listing: { 
    screen: listing, 
    navigationOptions: { 
     title: "Listing" 
    } 
    } 
}) 
+0

[mcve] – bennygenel

+0

を入力してください。ナビゲータスタックの設定を表示してください。 'StackNavigator'が' TabNavigator'の下になければ、それは動作しません。 – zvona

答えて

1
onProfileButtonPressedへ

onPress={() => this.onProfileButtonPressed()} 

機能は次のようになります

あなたの問題は、現在あなたのTabNavigatorが内部にあると思いますStackNavigator。それは別の方法であるはずです。

さらに、サインアップのようなすべてのビューに表示したくないので、カスタマイズする必要があります。 TabBarを隠すことに関するドキュメントから詳細な仕様を読んでください。

しかし、タブを使った基本的なロジックは、スタックがスタック内にあることです。

constructorのスコープに関数をバインドする場合は、 onPress={this.onProfileButtonPressed}のように参照する必要があります。

+0

スタックナビゲータは私たちが望むログイン画面を持っているので、私は現在、アプリを最初に起動させています。もし私たちがTabNavigatorをStackNavigatorの中に置くのであれば、これについてどうやって行くのですか? – frog4

+0

@ frog4スタックがタブの内側にある場合でも、初期ルートとアプリの動作のロジックは似ています。カスタムロジックで世話をする必要があるのは、タブが見えるときだけです。残念ながら私はatmのサンプルを提供することはできませんが、あなたが探していることを願っています。 – zvona

+0

私はもう少し詳しく作業します。ありがとうございます – frog4

関連する問題

 関連する問題