@Builder自定义构建函数,如何回参?

使用Navigation组件,需要自定义分栏,于是在Navigation组件的toolbarConfiguration属性中使用了@Builder自定义构建函数,在自定义构建函数中,存在点击事件,希望回调参数给Navigation,如何做?

HarmonyOS
2024-10-11 11:50:58
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

参考:

class ActionFn {  
  onclick:Function = () => {}  
}  
@Entry  
@Component  
struct NavigationExample {  
  @State TooTmp: ToolbarItem = {'value': "func", 'icon': "./image/ic_public_highlights.svg", 'action': ()=> {}}  
  private arr: number[] = [1, 2, 3];  
  testOnClick = (params:string) => {  
    console.log('Test'+params)  
  }  
  @Builder  
  test(action:ActionFn) {  
    Column(){  
      Text('Test').onClick(() => {  
        action.onclick('Test')  
      })  
    }  
  }  
  build() {  
    Column() {  
      Navigation() {  
        List({ space: 12 }) {  
          ForEach(this.arr, (item:string) => {  
            ListItem() {  
              NavRouter() {  
                Text("NavRouter" + item)  
                  .width("100%")  
                  .height(72)  
                  .backgroundColor('#FFFFFF')  
                  .borderRadius(24)  
                  .fontSize(16)  
                  .fontWeight(500)  
                  .textAlign(TextAlign.Center)  
                NavDestination() {  
                  Text("NavDestinationContent" + item)  
                }  
                .title("NavDestinationTitle" + item)  
              }  
            }  
          }, (item:string):string => item)  
        }  
        .width("90%")  
        .margin({ top: 12 })  
      }  
      .title("主标题")  
      .mode(NavigationMode.Split)  
      .toolbarConfiguration(this.test({ onclick: this.testOnClick }))  
    }  
    .height('100%')  
    .width('100%')  
    .backgroundColor('#F1F3F5')  
  }  
}  

把回调用作参数传入,然后再自定义构建函数click方法中调用。

分享
微博
QQ
微信
回复
2024-10-11 16:19:06
相关问题
组件自定义函数实现
433浏览 • 1回复 待解决
自定义构建任务写入文件
813浏览 • 1回复 待解决
HarmonyOS 自定义编译构建参数
89浏览 • 1回复 待解决
编译构建怎么编写自定义任务?
725浏览 • 1回复 待解决
HarmonyOS 自定义interface调问题
179浏览 • 1回复 待解决
使用自定义函数创建一个UI组
359浏览 • 1回复 待解决
如何自定义函数中创建一个UI组件
1825浏览 • 1回复 待解决