首页Tabcontent里的一个组件从屏幕消失,再次出现在屏幕首页如何调用组件的方法?

Tabs({ barPosition: BarPosition.End, controller: this.tabsController }) {  
  TabContent() {  
    HomePage();  
  
  }  
  .tabBar(this.TabBuilder( 0, $r('app.media.iconhomePress'), $r('app.media.iconhome')))

首页tabcontent有一个组件HomePage();当HomePage();再次出现在页面上如何调用HomePage();的方法。

HarmonyOS
2024-10-08 12:48:03
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

可参考demo:

// Index.ts  
import { HomePage } from './HomePage'  
export class ChildController {  
  changeText = (value: string) => {  
    console.log('11111')  
  }  
}  
  
export let ChildRef = new ChildController()  
  
@Entry  
@Component  
struct Parent {  
  // ChildRef = new ChildController()  
  @State noShow: boolean = false  
  private tabsController: TabsController = new TabsController();  
  
  build() {  
    Column() {  
      Tabs({ barPosition: BarPosition.End, controller: this.tabsController }) {  
        TabContent() {  
          Column(){  
            HomePage({ controller: ChildRef });  
            Button('CLICK').onClick(()=>{  
              ChildRef.changeText('Parent调用childer的changeText')  
            })  
          }  
        }  
      }  
    }  
  }  
}  
// homePage.ets  
import { ChildController } from './Index';  
@Entry  
@Component  
export struct HomePage {  
  @State private text: string = '初始值'  
  private controller: ChildController = new ChildController();  
  
  aboutToAppear() {  
    if(this.controller) {  
      this.controller.changeText = this.changeText  
    }  
    console.log('aaa')  
  }  
  
  private changeText = (value: string) =>{  
    this.text = value  
    console.log('bbb')  
  }  
  
  build() {  
    Column() {  
      Text(this.text)  
    }  
  }  
}

也可以参考buildParam装饰器,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-builderparam-V5

分享
微博
QQ
微信
回复
2024-10-08 16:22:33
相关问题
组件调用组件方法
308浏览 • 1回复 待解决
HarmonyOS 在entry替换首页
38浏览 • 1回复 待解决
如何获取组件宽高和在屏幕位置
3194浏览 • 2回复 待解决
如何指定一个组件宽高比例?
280浏览 • 1回复 待解决
组件调用组件方法
1258浏览 • 1回复 待解决
HarmonyOS 首页框架问题
337浏览 • 1回复 待解决