В проекте я намерен использовать только один элемент Navigator для обработки всей навигации по страницам.onsen react navigator pushpage перезаписывает последнюю страницу
На всем коде есть один синглтон appState
, и 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)
, новый Route, по-видимому, добавляется, когда проверяется во время добавления. То есть, я получаю следующее сразу после нажатия newRoute
:
LoginPage
HomePage
Однако последующий вызов pushPage(someOtherRoute)
дает
LoginPage
SomeOtherRouteComponent
Я ожидал бы
LoginPage
HomePage
SomeOtherRouteComponent
Я проверил, что есть никаких проблем с синхронизацией и т. д., когда я нажимаю объект маршрута в список в сторону, я получаю все без потерь. Но только pushPage
не работает, как я ожидаю.
Любые идеи или недостающие вещи очевидны? Отрывки - это TS.