2016-05-18 85 views
0

我找不到任何有关如何使用<Navigator/>组件完成的文档......基本上,当我的一个场景加载时,我希望能够通过route.navBarColor我的导航器将自动更改栏的背景颜色。修改导航栏的路线变化

我曾试图推动与{navBarColor: 'red'}路线,等等...到renderScene(),但这并不工作,因为renderScene()似乎并不具有this参考,当我bind(this)它,整个场景不会呈现并引发堆栈溢出错误。

基本上,我想要做这样的事情:

navigator.push({name: 'TestScene', navBarColor: 'transparent'})

然后去

renderScene(route, navigator) { 
    if(route.navBarColor) { 
     this.setState({navBarColor: navBarColor}); 
    } ... etc. 
} 

this.state.navBarColor用于设置backgroundColor道具的navigationBar的。

这是可能与Navigator组件?我看到它似乎与NavigatorIOS,所以我不明白为什么它不会在这里。

谢谢!

回答

1

Navigator组件没有它自己的显示,它只管理场景转换和路由,所以询问如何做到这一点“与导航”是不正确的。这与指示显示器的NavigatorIOS形成对比。

你的问题提到“NavigationBar”,那是React Native Navbar

如果是,在renderScene()函数中的某处会有对组件的引用,您只需将它传递给相应的navBarColor prop即可。

<NavigationBar statusBar={{ tintColor: route.navBarColor }} /> 
+0

嗨,谢谢你的回答!我使用内置于React Native中的组件(带有路由映射器)。就你所知,那么,没有办法改变这种颜色?谢谢。 –