2

我正在使用单个组件来处理多个任务(例如,带来食物/打扫房间)。我将任务标题作为道具传递给组件并相应地呈现。该组件将使用不同的道具多次调用。我正在使用ex-navigation 在我的任务组件中呈现我的导航栏,如下所示:

    static route = {
      navigationBar: {
        backgroundColor: '#0096ff',
        tintColor: '#fff',
        title: 'Clean' //Need to do make this dynamic based on props value
      }
    } 

现在我希望标题是动态的并使用道具中的值(标题:this.props.title)。现在,由于这是一个静态变量,我如何在静态路由变量中使用 props 值(仅在初始化构造函数后出现)来根据传递给组件的 props 使我的标题动态化。

4

2 回答 2

2

titlenavigationBar中的属性可以是function接收参数作为参数,如下所示

title(params) {
        return `Greeting for ${params.name}`;
      },

检查https://github.com/exponent/ex-navigation#passing-params-to-a-route 了解更多方法

于 2017-03-02T23:18:40.523 回答
0

如果您正在使用 redux 并且您已配置ex-navigator为使用它,则应该将其navigator作为道具。当你推送你的主要路线时,你可以传递你想要的标题:

this.props.navigator.push(Router.getRoute('MainRoute', {title: 'WhateverYouWant'}))

由于它是您的主要路线并且您将重复使用它,因此您可以更新 title udateCurrentRouteParams()

     this.props.navigator.updateCurrentRouteParams({
      title: 'NewTitle',
    })
于 2017-03-23T17:42:23.467 回答