HarmonyOS 鸿蒙Next router.getParams()获取传递的参数,如何判断参数某个字段是否存在
HarmonyOS 鸿蒙Next router.getParams()获取传递的参数,如何判断参数某个字段是否存在
router.getParams()获取传递的参数,如何判断参数某个字段是否存在
通过in和hasOwnProperty都不行
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,