TypeError:在导航状态下找不到“路线”

时间:2018-08-03 14:42:56

标签: reactjs react-native navigation react-navigation

我正在从反应导航中使用createMaterialTopTabNavigator,其中我有两个单独的屏幕UpdatesStackShopsStack,我想从这些屏幕导航到其他屏幕,所以我写成{{ 1}},并显示以下红色屏幕错误。

如果我写的像<Toptab navigation={this.props.navigation} />,则没有错误,但我无法导航。

所以我该如何解决这个问题并能够导航。

代码

<Toptab />

error screen

2 个答案:

答案 0 :(得分:4)

我知道已经很晚了,但是只是为那些在搜索引擎上迷迷糊糊的人解答:

  1. 为什么不导出默认的TopTab本身。在您的用例中,似乎不需要将TopTab与ParentTheme组件一起包装。您可以设置TopTab导航器本身的样式,并使其像任何其他组件一样呈现。

  2. 如果必须包装TopTab,除了导航道具外,还需要可访问TopTab中的路由器。这样,它们都引用相同的路由器。简而言之,添加ParentTheme:

静态路由器= TopTab.router;

查看“自定义导航器”以获取更多信息。 https://reactnavigation.org/docs/en/custom-navigators.html

答案 1 :(得分:2)

如果您使用带有钩子的功能化React组件,则由于它们不是JS类,因此将无法在组件内部声明静态变量。

改为声明路由器变量,如下所示:

const reactComponent = (props) => { 
    /* your component logic and render here */
}
reactComponent.router = TopTab.router; //equivalent to static variable inside a class
export default reactComponent