我是一名能够帮助翻译文本的助手。下面是需要翻译的内容:
然后,在发出
在推送第二个路由并记录路由,当调用renderScene时会产生以下结果:
当尝试在最后推送的路由之前渲染 5 个路由的场景时,会出现显著的性能问题,而实际上应该仅调用一次 render() 以仅渲染最后推送的路由的场景。
非常感谢任何帮助。
以下是相关的代码片段:
我一直在RN Navigator中被难住,试图弄清楚为什么Navigator会渲染其堆栈中推入的所有路由。
最初
<Navigator initialRoute={{name:"Route 1", index: 1}} />
然后,在发出
navigator.push({ name : "Route 2", index: 2 })
命令时,我的组件的 render() 方法被调用,该方法重新渲染 Navigator,然后调用renderScene
。在推送第二个路由并记录路由,当调用renderScene时会产生以下结果:
有谁知道为什么 renderScene() 方法会被调用多次,而其中包含 Navigator 栈中的路由数?这是预期行为吗?如果是,我们如何加快渲染速度?Render() --> renderScene(), {name:"Route 1", index: 1}
Render() --> renderScene(), {name:"Route 2", index: 2}
当尝试在最后推送的路由之前渲染 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
实际上是什么样子吗?还有你的<Navigator initialRoute={name:"Route 1", index: 1} />
缺少了一对花括号,它应该是<Navigator initialRoute={{name:"Route 1", index: 1}} />
。 - rclaiinitialRoute
中有2个路由(渲染2次)并使用navigationState
传递堆栈时出现(但不推入任何内容)。 - Dominic