react-native-navigation - 静态 passProps 在 Navigation.push 上没有改变
问题描述
我正在使用来自 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: []
}
}
}
}
我从来没有看到日志语句,并且顶部栏选项没有改变。他们应该吗?
当我在目标屏幕Navigation.mergeOptions
中使用上述选项对象时constructor
,会出现选项,所以这就是我现在使用的。
使用android,还没有在iOS上测试过。当我这样做时会更新。
解决方案
我在我的组件中创建了这样的静态选项:
static get options() {
return {
...
}
}
当我从另一个屏幕推送并想要覆盖一些默认值时,我会这样做:
Navigation.push(this.props.componentId, {
component: {
name: 'chapel.search',
passProps: {
myProp: myprop1
},
options: {
topBar: {
title: {
text: newTitleOverridingStaticOne
}
}
}
}
});
我不知道是否static options (passProps){...}
有效,但您可以尝试像我上面显示的那样检查它是否已解决
推荐阅读
- ios - SwiftUI:如何在动态列表或 LazyVStack 中获取视图框架
- typescript - 在推断该类型的某些部分时声明 TypeScript 类型
- python - 在我的计算器程序中添加一个函数。(Python)
- android - 有什么方法可以检测 Android 中新应用程序的安装吗?
- php - 如何使用 Twitter V2 API 拨打电话
- c++ - 重绘时如何避免重新启动多边形?
- android - 在这个新闻应用程序中,我不断收到 InflateException
- flutter - Flutter - 通过使屏幕的其余部分失焦,使小部件脱颖而出
- vue.js - 突出显示活动的 b-nav-item 在数据刷新时不起作用
- spring-boot - 在另一个 Java 应用程序中启动一个 Spring Boot 应用程序?