HarmonyOS鸿蒙Next中router路由跳转传值问题
HarmonyOS鸿蒙Next中router路由跳转传值问题
// 页面1 传递数据 router.pushUrl({ url:‘xxxxxx’, params:{ ‘originalValue’:result }})
// 页面2 接收数据
Text(this.message).onClick(()=>{
this.message = router.getParams()[originalValue
]
})
router.getParams()[originalValue
]
这里提示错误 Indexed access is not supported for fields (arkts-no-props-by-index) 但是在断点模式下 Alt + F8 运行是可以获取到参数信息的,这个因该怎么写?
更多关于HarmonyOS鸿蒙Next中router路由跳转传值问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
- 如果前一个页面是:
router.pushUrl({ url: 'xxxxxx', params: result })
后一个页面可以:
let res = router.getParams();
let num: number = Number.parseInt(res.toString());
let str: string = res.toString();
let obj: XXObj = res as XXObj;
- 如果前一个页面是:
router.pushUrl({ url: 'xxxxxx', params: { 'originalValue': result }})
需要修改为:
router.pushUrl({
url: "pages/crop",
params: new PageInfo(0)
})
// 重点在于创建一个类型,包含你的key:
class PageInfo{
constructor(val: number) {
this.originalValue = val;
}
originalValue: number = 0;
}
后一个页面接收可以:
let pageInfo: PageInfo = router.getParams() as PageInfo;
let val = pageInfo.originalValue;
// 记得采纳一下回答。
更多关于HarmonyOS鸿蒙Next中router路由跳转传值问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
额
按照你的方法我进行了测试并不能获取到 Params 里的参数,而且我页面1 中 指定了key
按照你的方式我没有办法在获取的时候指定key,所以你这种方案应该是有前提的,方便告知前提是什么么?
标题
这里是段落文本。
子标题
这是另一个段落。
router.getParams()[originalValue
]不能这样取值router.getParams(originalValue
)as 类型 得到的结果在取值
getParams()
Obtains information about the current page params.
- Returns:
{ Object }
Page params. - Capabilities:
SystemCapability.ArkUI.ArkUI.Full
- Cross-platform:
- Atomic Service:
- Since: 11
在HarmonyOS鸿蒙Next中,使用router
进行页面跳转时,可以通过params
传递参数。例如:
import router from '@ohos.router';
router.push({
url: 'pages/NextPage',
params: {
key1: 'value1',
key2: 'value2'
}
});
在目标页面中,可以通过router.getParams()
获取传递的参数:
import router from '@ohos.router';
let params = router.getParams();
console.log(params.key1); // 输出: value1
console.log(params.key2); // 输出: value2
确保参数类型为string
或number
,复杂对象需序列化。