HarmonyOS 鸿蒙Next:Component中如何接收返回的数据

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:Component中如何接收返回的数据

例如:
@Entry
@Compoent
struct A{
build(){
B
}
}

@Compoent struct B{ build(){ xxxxx } },


在B中使用了router跳转到了C页面,然后C页面携带参数router.back(url: xxx, params:{xxxx}),我如何能在B中获取到C带回来的params


更多关于HarmonyOS 鸿蒙Next:Component中如何接收返回的数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

请参考以下代码: 1.A.ets

import { router } from '@kit.ArkUI'

@Entry

@Component

struct A{

  @State select: boolean = true

  onPageShow(): void {

    // let aaa =  router.getParams() as Record<string, string>;

    // if (aaa) {

    //   const info: string = aaa.ttt as string; // 获取info属性的值

    //   console.info('wwwwwww1==',info)

    // }

  }

  build() {

    Column(){

      B()

    }

  }

}

@Component struct  B{

  build() {

    Column() {

      Text('B组件跳转到C')

        .onClick(() => {

          router.pushUrl({

            url: 'pages/C'

          })

        })

    }

    .onVisibleAreaChange([0.0, 1.0], (isVisible: boolean, currentRatio: number) => {

      let aaa =  router.getParams() as Record<string, string>;

      if (aaa) {

        const info: string = aaa.ttt as string; // 获取info属性的值

        console.info('wwwwwww1==onVisibleAreaChange===',info)

      }

    })

  }

}

2.C.ets

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

@Entry

@Component

struct C {

  @State message: string = 'Hello World';

  aboutToAppear(): void {

  }

  build() {

    RelativeContainer() {

      Text(this.message)

        .id('CHelloWorld')

        .fontSize(50)

        .fontWeight(FontWeight.Bold)

        .alignRules({

          center: { anchor: '__container__', align: VerticalAlign.Center },

          middle: { anchor: '__container__', align: HorizontalAlign.Center }

        })

        .onClick(()=>{

          router.back({url:'',params:{"ttt":'返回数据'}})

        })

    }

    .height('100%')

    .width('100%')

  }

}

更多关于HarmonyOS 鸿蒙Next:Component中如何接收返回的数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,Component接收返回数据通常通过事件机制或回调接口实现。具体步骤如下:

  1. 定义事件或回调接口:在发送数据的组件中,定义一个事件或回调接口,用于将数据传递出去。该事件或接口需要包含返回的数据类型。

  2. 注册事件监听器:在接收数据的组件中,注册一个事件监听器,用于监听来自其他组件的事件。监听器需要实现对应的事件处理函数。

  3. 触发事件:在发送数据的组件中,当数据准备好后,触发定义好的事件,并将数据作为参数传递给事件。

  4. 处理事件:接收数据的组件的事件监听器会捕获到这个事件,并在事件处理函数中获取传递过来的数据。

  5. 使用数据:在事件处理函数中,接收组件可以直接使用传递过来的数据,进行后续的逻辑处理。

这种机制确保了组件间的数据传递是解耦的,发送组件不需要知道接收组件的具体实现,只需要触发事件即可。接收组件则通过监听事件来获取数据,实现了数据的接收。

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

回到顶部