静态passProps在Navigation.push上不变

时间:2019-04-16 21:57:36

标签: react-native-navigation wix-react-native-navigation react-native-navigation-v2

我正在使用Wix的react-native-navigation v2,试图将屏幕推送到现有堆栈。这是我的推送代码:

        Navigation.push(this.props.componentId, {
          component: {
            name: 'chapel.search'
          }
        })

我的选项对象

  static options (passProps) {
    console.log('Firing static method')
    return {
      component: {
        name: 'chapel.search',
        topBar: {
          visible: true,
          leftButtons: [
            {
              id: 'back',
              testID: 'back',
              icon: require('../../Images/back.png')
            }
          ],
          title: {
            component: {
              name: 'chapel.navtitle',
              alignment: 'center',
              passProps: { text: 'Search' }
            }
          },
          rightButtons: []
        }
      }
    }
  }

我从没有看到log语句,并且topbar选项没有更改。应该吗?

当我在目标屏幕的Navigation.mergeOptions中将constructor与上面的选项对象一起使用时,会显示选项,所以这就是我现在要使用的。

使用android,尚未在iOS上进行测试。当我这样做时会更新。

1 个答案:

答案 0 :(得分:0)

我正在组件中生成这样的静态选项:

 static get options() {
    return {
        ...
    }
 }

当我从另一个屏幕推入并想覆盖一些默认设置时,我会像下面这样操作:

Navigation.push(this.props.componentId, {
    component: {
      name: 'chapel.search',
      passProps: {
        myProp: myprop1
      },
      options: {
        topBar: {
          title: {
            text: newTitleOverridingStaticOne
          }
        }
      }
    }
});

我不知道static options (passProps){...}是否有效,但是您可以像上面显示的那样尝试检查它是否已解决