Я некоторое время был в тупике с RN Navigator, пытаясь понять, почему Navigator отображает все маршруты, вложенные в его стек.React Native Navigator renderScene называется несколько раз
Первоначально
<Navigator initialRoute={{name:"Route 1", index: 1}} />
Тогда при выдаче navigator.push({ name : "Route 2", index: 2 })
метод визуализации() моего компонента вызывается, который повторно предоставляет навигатор, который, в свою очередь, вызывает renderScene
.
После нажатия на 2-й маршрут и протоколирование маршрут, когда renderScene вызывается, уступает:
Render() -> renderScene(), {имя: "Маршрут 1", индекс: 1}
Render() -> renderScene(), {имя: "Route 2", индекс: 2}
кто-нибудь знает, почему renderScene() вызывается столько раз, сколько есть маршруты внутри стек Навигатора? Это ожидаемое поведение, и если это так, мы можем ускорить рендеринг?
При попытке рендеринга сцен из 5 маршрутов происходит значительное повышение производительности, прежде чем, наконец, рендеринг сцены для последнего толкаемого маршрута, когда на самом деле он должен вызывать render() один раз для рендеринга только сцены последнего толкаемого маршрута ,
Любая помощь очень ценится. Спасибо!
Это соответствующие фрагменты:
nav.js
export function ListPage(){
return {
name: LIST_PAGE,
index: 1
}
}
Main App
<Navigator
ref={(ref) => this.navigator = navigator = ref}
initialRoute={nav.ListPage()}
renderScene={(route,navigator)=>this.renderListingsScene(route,navigator)}
/>
renderListingsScene(route, navigator){
console.log("renderScene()", route);
}
Вы можете поделиться тем, что на ваш взгляд "renderScene" на самом деле? Также ваш ' ' отсутствует пара фигурных скобок, он должен быть ' ' –
rclai
Я обновил вопрос, чтобы отразить код, который вы ищете, и у меня есть скобки в моем коде - исправлена опечатка – DritanX
Да, это странно. У меня такая же проблема, но только с двумя маршрутами в 'initialRoute' (рендеринг 2x) и с помощью' navigationState', чтобы передать стек (но не нажимать на него) –