使用Navigator

时间:2017-01-18 21:48:43

标签: javascript ios react-native

我与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道具,它似乎已经解决了我的问题。但是我不明白这个道具是用来做什么......

1 个答案:

答案 0 :(得分:1)

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

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