最近都在开发鸿蒙next的应用,记录下来关于子组件调用父组件的方法
以Tabs为例
首先父组件是Index,里面有一个子组件mainView,实现mainView调用了父组件changeTab的方法。
@Entry
@Component
struct Index {private tabsController: TabsController = new TabsController()build() {Column() {Tabs({ barPosition: BarPosition.Start, controller: this.tabsController }) {TabContent() {mainView({//实现跳转changeTab: (index:number) => {this.changeTab(index)}})}.tabBar('概览').backgroundColor(Color.Pink)TabContent() {DeviceInfoView()}.tabBar('设备')}.vertical(false).scrollable(true).barMode(BarMode.Fixed).barWidth('100%').barHeight('10%').animationDuration(400).scrollable(true).barMode(BarMode.Scrollable).onChange((index: number) => {console.info(index.toString())}).width('100%').backgroundColor(0xF5F5F5)}.width('100%').height("100%")}changeTab(index: number) {this.tabsController.changeIndex(index)}}
mainView 子组件
@Entry
@Component
struct mainView {changeTab?: (index: number) => voidbuild() {Row() {Column() {Button().onClick(()=>{//根据你提供的indexthis.changeTab!(1)})}.width('100%')}.height('100%')}
}
我建了一个鸿蒙开发者交流群,欢迎大家加入交流鸿蒙开发