2016-09-17 18 views
0

を上書きし、私の意図は、すべてのページのナビゲーションを処理するために一つだけナビゲーター要素を使用することです。温泉反応ナビゲータpushpageは、プロジェクトでは、最後のページ

コード全体に1つのシングルトンappStateがあり、そのうちnavigatorがメンバーであり、最も外側のAppコンポーネントによって初期化されます。

ReactDOM.render(
    <App/>, 
    document.getElementById('app') 
); 

ナビゲーターは、によって開始されます。

initialRouteと正しく
initialRoute = { 
    component: LoginPage, 
    props: { 
}}; 

<Ons.Navigator 
    initialRoute={this.initialRoute} 
    renderPage={this.renderPage.bind(this)} 
/> 

renderPage(route: Route, navigator: typeof Ons.Navigator) { 
    const props: any = route.props || {}; 
    if (appState.navigator == null) { 
    appState.navigator = navigator; 
    } 
    props.navigator = appState.navigator; 
    return React.createElement(route.component, route.props); 
} 

pushPage(newRoute)と呼ぶと、追加時にチェックされると、newRouteが明らかに追加されます。私はそこにあることを確認した

LoginPage 
HomePage 

をしかし、pushPage(someOtherRoute)利回り

LoginPage 
SomeOtherRouteComponent 

への後続の呼び出しを私は

LoginPage 
HomePage 
SomeOtherRouteComponent 

を期待する:それはnewRouteを押した後、私は次の権利を取得、あります同期などの問題はありません。ルートオブジェクトを脇に置いておくと、何も失わずにすべてを得ることができます。しかし、ちょうどpushPageが私の期待どおりに動作していません。

すべてのアイデア、または何かを明らかに不足していますか?スニペットはTSです。

答えて

0

ページロード中のエラーがNavigatorでキャッチされ、ページがルートに追加されない(ページは引き続き移動されます)ように見えます。

私はこの問題を回避するにgithubの上issueを提出しました。代わりの回避策は、ページの読み込み中にJSエラーがないことを確認することです。サードパーティのモジュールがある場合は、100%でない可能性があります。

関連する問題