HarmonyOS 鸿蒙Next router.getParams()获取传递的参数,如何判断参数某个字段是否存在

HarmonyOS 鸿蒙Next router.getParams()获取传递的参数,如何判断参数某个字段是否存在

router.getParams()获取传递的参数,如何判断参数某个字段是否存在
通过in和hasOwnProperty都不行

11 回复
let logonData = router.getParams() as {userName: string, Password: string};

if (logonData != null) {
    this.UserName = logonData.userName;
    this.Password = logonData.Password;
}

这是我项目中用到的,可以参考。

更多关于HarmonyOS 鸿蒙Next router.getParams()获取传递的参数,如何判断参数某个字段是否存在的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


项目名称

  • 状态: 已完成
  • 类型: 移动应用
  • 描述: 这是一个帮助用户管理日常任务的应用程序。

相互学习。

上述的两方案都不太对,都有相应的报错信息,有没有能解决问题的方法呀?

如果 params 不是未定义且不是 null:

我搞定这个问题了,在使用hasOwnProperty之前要先确保对象已经定义并且非空,然后就可以了:

let params: Object = router.getParams(); // as { FromPage: string, PageData: string };
if (params !== undefined && params !== null) {
  // let s: string = JSON.stringify(params);
  if (params.hasOwnProperty('FromPage')) {
    console.log(params['FromPage']);
  }
}

我用的二楼的方法,

我也碰到了同样的问题,现在解决了吗?

能否上一下代码呢

if(‘name’ in router.getParams()){

}

if (router.getParams().hasOwnProperty(‘name’)) {

}

在HarmonyOS(鸿蒙)系统中,如果你正在使用JavaScript或TypeScript进行开发,并希望在使用router.getParams()获取传递的参数后判断某个字段是否存在,可以按照以下方式进行操作:

假设你已经通过router.getParams()获取到了参数对象params,你可以使用JavaScript中的in操作符或者hasOwnProperty方法来检查某个字段是否存在。

使用in操作符

let params = router.getParams();
if ('fieldName' in params) {
    // 字段存在
} else {
    // 字段不存在
}

使用hasOwnProperty方法

let params = router.getParams();
if (params.hasOwnProperty('fieldName')) {
    // 字段存在
} else {
    // 字段不存在
}

其中,'fieldName'是你想要检查的字段名。

这两种方法都可以有效地判断参数对象中是否包含指定的字段。in操作符会检查对象自身及其原型链中的属性,而hasOwnProperty方法仅检查对象自身的属性,不会检查原型链。根据实际需求选择合适的方法即可。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部