使用Navigator推送新路线时出现问题

我对Navigator有一种奇怪的行为。 我第一次调用navigator.push(...) ,有时会打印以下警告:

 Warning: flattenChildren(...): two children with the same key, 'scene_1'. Child keys must be unique; when two children share a key, only the first child will be used. in RTCView (created by View) in View (created by Navigator) 

或者,它将显示一个空白页面。

但是,如果我再次弹出并推动,它将起作用……发生了什么?


编辑:

这是代码:

 import Page1 from '../page/Page1'; import Page2 from '../page/Page2'; import Page3 from '../page/Page3'; const routes = [ { index: 0, title: 'Page 1' , component: Page1 }, { index: 1, title: 'Page 2', component: Page2 }, { index: 2, title: 'Page 3', component: Page3 }, ]; class MyApp extends Component { renderScene(route, navigator) { let Component = route.component ; if (route.component) { return (  ); } return null; } render() { return (  ); } } 

=>我刚试图从Navigator中删除initialRouteStack prop,它似乎已经解决了我的问题。 但是我不明白这个道具是用来做什么的……

initialRouteStack是您为导航器开始的堆栈。 通常你只是传递一个initialRoute,所以你的堆栈将从那条路线开始。

但是您将所有路由传递到initialRouteStack,因此当您导航到另一个场景时,您基本上将组件推送到已包含该组件的堆栈的末尾。 希望这有意义并澄清事情。