【问题标题】:Modify NavigationBar on route change更改路由时修改 NavigationBar
【发布时间】:2016-05-18 05:32:23
【问题描述】:

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

我尝试将带有{navBarColor: 'red'} 等的路由推送到renderScene(),但这不起作用,因为renderScene() 似乎没有引用this,当我@987654327 @it,整个场景不渲染,抛出 Stack Overflow 错误。

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

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

然后去

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

其中this.state.navBarColor用于设置navigationBarbackgroundColor属性。

Navigator 组件可以做到这一点吗?我看到它似乎与NavigatorIOS 在一起,所以我不明白为什么它不会在这里。

谢谢!

【问题讨论】:

    标签: javascript ios navigation react-native


    【解决方案1】:

    Navigator 组件没有自己的显示,它只管理场景转换和路由,因此询问如何“使用 Navigator”是不对的。这与 NavigatorIOS 形成鲜明对比,后者也决定了显示。

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

    如果是,则在 renderScene() 函数中的某处将引用该组件,您只需将适当的 navBarColor 属性传递给它。

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

    【讨论】:

    • 您好,感谢您的回答!我正在使用 React Native 中内置的 &lt;Navigator.NavigationBar/&gt; 组件(带有路由映射器)。那么,据你所知,没有办法改变这种颜色?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-10-28
    • 2021-03-03
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2019-05-20
    相关资源
    最近更新 更多