In< Navigator />,基于传入的当前route.name,我想做以下操作,但是我收到一个错误:'route is not defined'。为什么会这样?我该怎么做呢?
<Navigator
...
navigationBar={<Navigator.NavigationBar style={route.name == 'Home' ? styles.homeNavBar : styles.normalNavBar} .../>
/>
提前谢谢!
答案 0 :(得分:0)
route
未定义,因为此代码中的任何位置都没有提供该变量。如果您想要更改样式,但仍然使用NavigationBar,那么最好不要这样写:https://stackoverflow.com/a/33697459/1487687
您的NavigationBarRouteMapper
对象将为每个函数注入路由:
var NavigationBarRouteMapper = {
LeftButton: function( route, navigator, index, navState ){
return(
<Text>{ route.leftButton }</Text>
)
},
Title: function( route, navigator, index, navState ){
return(
<Text>{ route.title }</Text>
)
},
RightButton: function( route, navigator, index, navState ){
return(
<Text>{ route.rightButton }</Text>
)
}
}
如果您需要直接设置条形图,那么最好自己制作导航条组件。我要看一下这个来源的来源:https://github.com/react-native-community/react-native-navbar
答案 1 :(得分:0)
您可以像这样获取当前路径:navigator.getCurrentRoutes()其中navigator是Navigator对象。在您的示例中,您可能必须使用this.getCurrentRoutes或引用它,如下面的链接所示: