我与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 (
<Component navigator={ navigator } />
);
}
return null;
}
render() {
return (
<Navigator
initialRoute={ routes[0] }
initialRouteStack={ routes }
renderScene={ this.renderScene }
/>
);
}
}
=&GT;我刚试图从导航器中删除initialRouteStack
道具,它似乎已经解决了我的问题。但是我不明白这个道具是用来做什么......
答案 0 :(得分:1)
initialRouteStack是您开始使用导航器的堆栈。通常你只是传递一个initialRoute,所以你的堆栈将从那条路线开始。
但是您将所有路由传递到initialRouteStack,因此当您导航到另一个场景时,您基本上将组件推送到已包含该组件的堆栈的末尾。希望这有意义并澄清事情。