#鸿蒙通关秘籍#如何在页面跳转时传递参数

HarmonyOS
2024-12-04 15:01:42
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
CV晨风拂面

在调用Router模块的方法时,可以添加一个params属性,用于传递需要的参数。以下是从主页到详情页传递参数的示例:

import { router } from '@kit.ArkUI';
class DataModelInfo {
  age: number = 0;
}

class DataModel {
  id: number = 0;
  info: DataModelInfo|null = null;
}

function onJumpClick(): void {
  let paramsInfo: DataModel = {
    id: 123,
    info: {
      age: 20
    }
  };

  router.pushUrl({
    url: 'pages/Detail', 
    params: paramsInfo 
  }, (err) => {
    if (err) {
      console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);
      return;
    }
    console.info('Invoke pushUrl succeeded.');
  })
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.

在目标页面的onPageShow()生命周期回调中,可以通过router.getParams()方法获取传递的参数:

import { router } from '@kit.ArkUI';

class InfoTmp {
  age: number = 0;
}

class RouTmp {
  id: object = () => {};
  info: InfoTmp = new InfoTmp();
}

const params: RouTmp = router.getParams() as RouTmp; 
const id: object = params.id;
const age: number = params.info.age;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
分享
微博
QQ
微信
回复
2024-12-04 16:34:01
相关问题