HarmonyOS鸿蒙Next中Navigation子页面pop回到根页面时,根页面如何获取子页面pop回来的参数

HarmonyOS鸿蒙Next中Navigation子页面pop回到根页面时,根页面如何获取子页面pop回来的参数 目前官方提供的NavPathStack api只能在子页面中获取对应的参数,根页面既没有name也没有index无法获取到子页面返回到根页面的参数

3 回复

更多关于HarmonyOS鸿蒙Next中Navigation子页面pop回到根页面时,根页面如何获取子页面pop回来的参数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,当通过Navigation从子页面pop回到根页面时,根页面可以通过PageAbilityonPageShow生命周期方法来获取子页面传递回来的参数。子页面在pop时,可以使用Result对象将数据传递回根页面。具体步骤如下:

  1. 在子页面中,使用Result对象设置返回的参数:

    let result = new Result();
    result.setResult({ key: 'value' });
    this.context.terminateSelf(result);
    
  2. 在根页面的PageAbility中,重写onPageShow方法,通过getResult获取子页面返回的参数:

    onPageShow() {
        let result = this.context.getResult();
        if (result) {
            let params = result.getResult();
            console.log('Received params:', params);
        }
    }
    

通过这种方式,根页面可以在子页面pop时获取到传递回来的参数。

在HarmonyOS鸿蒙Next中,当子页面通过pop操作返回到根页面时,可以使用AbilityContextonResult方法来接收子页面返回的参数。具体步骤如下:

  1. 子页面设置返回参数:在子页面中,使用setResult方法设置返回的参数,然后调用terminateSelf结束子页面。

  2. 根页面重写onResult方法:在根页面的onResult方法中接收子页面返回的参数,并进行处理。

示例代码:

// 子页面
Intent intent = new Intent();
intent.setParam("key", "value");
setResult(RESULT_OK, intent);
terminateSelf();

// 根页面
@Override
protected void onResult(int requestCode, Intent resultData) {
    if (resultData != null) {
        String value = resultData.getStringParam("key");
        // 处理返回的参数
    }
}

通过这种方式,根页面可以获取子页面pop返回的参数。

回到顶部