0

プロジェクトでは、1 つの Navigator 要素のみを使用してすべてのページ ナビゲーションを処理することを意図しています。

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

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

ナビゲーターは、次の方法で開始されます。

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);
}

で正しくinitialRoute。を呼び出すとpushPage(newRoute)、追加時に確認すると、どうやら newRoute が追加されているようです。つまり、を押した直後に次のようになりますnewRoute

LoginPage
HomePage

ただし、その後の yield のpushPage(someOtherRoute)呼び出し

LoginPage
SomeOtherRouteComponent

私は期待するだろう

LoginPage
HomePage
SomeOtherRouteComponent

同期などに問題がないことを確認しており、ルートオブジェクトをアサイドリストにプッシュすると、すべてロスなく取得できます。しかし、pushPage期待どおりに機能していません。

任意のアイデア、または明らかな何かが欠けていますか? スニペットは TS です。

4

1 に答える 1