HarmonyOS 关于某个类默认参数的传递问题

1、有一个类是这样的:

@Observed 
export class MYWebViewParams { 
  url: string = '' 
  //状态栏相关 
  immersive: number = 0 
  //标题栏相关 
  title: string = '' 
  isShowTitleBar: boolean = true 
  isUseWebTitle: boolean = true 
  isFinishWhenClickBack: boolean = false 
  leftCloseText: string | null = null 
  //进度条相关 
  progressValue: number = 5 
  isShowProgressBar: boolean = true 
}

2、自定义组件MYWebView入参是这样的:

MYWebView({params:param as MYWebViewParams})其中params是{“url”:“https://XXX”,“title”:“测试网页”}

3、自定义组件里MYWebView接收如下:

@Component 
export struct MYWebView { 
 
  @State params: MYWebViewParams = new MYWebViewParams(); 
 
  aboutToAppear(): void { 
 
    LogUtils.info(TAG, "入参params为:" + JSON.stringify(this.params)) 
    //这里打印的是:{"url":"https://xxx.xxx.com/harmony/demo/harmony-bridge1.html","title":"测试网页"} 
 
  } 
 
} 

问题是:我要如何让我的params: MYWebViewParams 具备默认参数,比如外部传参了url,但是没传参immersive参数,我想让immersive参数为0,而不是undefined,请问要如何做呢?

HarmonyOS
2024-08-08 18:37:28
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

ArkTS父子组件之间的参数传递可以用@Prop接收,父组件的参数会覆盖子组件的初始化数据,在上述代码案例中父组件的传过来的不带immersive的对象覆盖了new出来的数据。建议使用简单数据替换对象数据,或者使用类似Object.assign的方法合并两个对象或者您可以采用构造函数的方法,可以参考以下代码

class MYWebViewParams  { 
  public url: string; 
  public immersive: number; 
  public title: String; 
  public readIt: boolean = false; 
 
  constructor(url: string = '', title: String = '', immersive: number = 0, ) { 
    this.url = url; 
    this.title = title; 
    this.immersive = immersive; 
  } 
} 
 
@Component 
struct MYWebView { 
  @Prop params: MYWebViewParams ; 
  aboutToAppear():void{ 
    console.log('JSON.stringify(this.params)',JSON.stringify(this.params)) 
  } 
  build() { 
    Row() { 
      Text(this.params.url) 
    } 
  } 
} 
 
@Entry 
@Component 
struct Library { 
  @State info: MYWebViewParams  = new MYWebViewParams ('.html','测试页面'); 
 
  build() { 
    Column() { 
      MYWebView({ params: this.info }) 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-08-08 21:03:02
相关问题
关于JS http请求参数传递问题
7284浏览 • 2回复 待解决
router传递hashmap参数问题
1449浏览 • 1回复 待解决
HarmonyOS 关于Provide数据传递问题咨询
268浏览 • 1回复 待解决
HarmonyOS关于AXIOS动态传参数问题
290浏览 • 1回复 待解决
关于 onArrange中获取到参数问题
4853浏览 • 1回复 待解决
HarmonyOS 怎么给属性赋默认
492浏览 • 1回复 待解决
如何获取router.back传递参数
2439浏览 • 1回复 待解决
windowClass.setUIContent是否支持传递参数
1983浏览 • 1回复 待解决
ETS API求助 Navigator如何传递参数
7072浏览 • 1回复 待解决
HarmonyOS 数据传递问题
325浏览 • 1回复 待解决
HTTP GET请求时如何传递参数
2944浏览 • 1回复 待解决
Web组件访问本地资源并传递参数
704浏览 • 1回复 待解决
关于处理父子组件间事件传递方式
323浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
182浏览 • 1回复 待解决
HarmonyOS 关于taskpool问题
49浏览 • 1回复 待解决