2017-03-14 9 views
0

私はたくさんの行を持つ複雑なアプリケーションを持っているので、ファイルを分割して行のファイルを避けたいと思っています。ここで他のファイルへのネイティブデポートNavigator.NavigationBar

は私のコードです:

export default class Nav extends Component { 
return(
    <Navigator 
    initialRoute={ ... } 
    renderScene={ ... } 
    navigationBar={ <MyNavigationBar/> } 
    /> 
) 
} 

export default class MyNavigationBar extends Component { 
return(
    <Navigator.NavigationBar routeMapper={ ... }/> 
) 
} 

しかし、私はこれを行うとき、私は例外を持っている:ここで

export default class Nav extends Component { 
return(
    <Navigator 
    initialRoute={ ... } 
    renderScene={ ... } 
    navigationBar={ <Navigator.NavigationBar routeMapper={ ... }/> } 
    /> 
) 
} 

は私が達成したいものです未定義 はオブジェクトではありません(評価します ' navState.routeStack ')

なぜですか?私はどうすればいいですか?

答えて

1

あなたのNavigationBarコンポーネントには現在いくつかのプロパティが不足していると思います。

すべてのプロパティをNavigationBarコンポーネントに渡そうとする必要があります。ナビゲータコンポーネントとその状態を表すナビゲータとnavState 2つの小道具を受信するそれらdocumentation

このコンポーネントで述べたよう

。ルートが変更されると、コンポーネントが再レンダリングされます。

はこれを試してみてください:

export default class MyNavigationBar extends Component { 
    return(
    <Navigator.NavigationBar {...this.props} routeMapper={ ... }/> 
) 
} 
+0

私はあなたが解決策を見つけたと思うが、私はまだネイティブ反応する新たなんだと私は右、まだそれを得るために管理していません。 NavとMyNavigationBarを編集してもう少し開発していただけますか? – alexandre

+0

NavigatorとnavStateをNavigatorに渡す方法がわかりません.NavigationBar ... – alexandre

+0

私の上位回答は機能しましたか? ここでの問題は、 'Navigator'の' navigationBar'が 'Navigator.NavigationBar'コンポーネントに必要な2つのプロパティを渡していることです。 あなたの 'MyNavigationBar'はこれらの小道具を受け取ります。 'NavigationBar'を動作させるには、すべてのパラメータを渡すことができます。 '... this.props'は' navigator = {this.props.navigator} navState = {this.props.navState} 'と同じことを行います。 –

関連する問題