HarmonyOS 组件接收页面参数

a是组件 b是页面 a跳转到b b返回的时候带参数 a这边怎么接收参数

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以在B页面返回的时候router.back将对应参数传入,返回到组件A所在的页面,并在页面的生命周期OnPageShow中通过router.getParams()的方式获取到参数,并将获取到的参数通过父子组件见的参数传递给组件A,@State跟@Link,请知悉。参考示例代码:

//ComponentA.ets
import { router } from '@kit.ArkUI'

@Component
export struct ComponentA {
  @Link  aa:string
  build() {
    Column(){
      Text('我是comp')
      Text('这是路由返回带过来的参数:'+this.aa)
      Button('跳转')
        .onClick(()=>{
          router.pushUrl({
            url:"pages/PageB"
          })
        })
    }
  }
}
//Index.ets
import { ComponentA } from '../model/ComponentA';
import { router } from '@kit.ArkUI';
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State aa:string=''
  onPageShow(): void {
    if(router.getParams()){
      const params = router.getParams() as Record<string, string>
      this.aa=params.ccc as string
    }
  }
  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
      ComponentA({aa:this.aa})
    }
    .height('100%')
    .width('100%')
  }
}
//PageB.ets
import { router } from '@kit.ArkUI';

@Entry
@Component
struct Page {
  @State message: string = '我是页面';
  @State bb:string=''
  build() {
    Column() {
      Text(this.message)
        .id('PageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
      TextInput()
        .onChange((val:string)=>{
          this.bb=val
        })
      Button("回")
        .onClick(()=>{
          router.back({
            url:"pages/Index",
            params:{
              ccc:this.bb
            }
          })
        })
    }
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 页面接收参数报错
25浏览 • 1回复 待解决
HarmonyOS 路由页面接收回传参数方式
1100浏览 • 1回复 待解决
HarmonyOS 路由参数如何接收
429浏览 • 1回复 待解决
HarmonyOS 路由跳转怎么接收参数
84浏览 • 1回复 待解决
HarmonyOS router.back返回参数如何接收
66浏览 • 1回复 待解决
HarmonyOS HTTP-post请求接收不到参数
28浏览 • 1回复 待解决
ArkTS如何判断接收参数是什么类型
49浏览 • 1回复 待解决