HarmonyOS 鸿蒙Next @Builder渲染UI不展示

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next @Builder渲染UI不展示 操作步骤: 1、进入页面,期待展示 测试
测试X

//TestNewPageX.ets
import { TestNewPage } from "./TestNewPage"

@Component
export struct TestNewPageX {
  @BuilderParam stockTypeBuilder: () => void;

  [@Builder](/user/Builder)
  async StockBottomTypeBuilder() {
    Column() {
      Text('测试')

      this.stockTypeBuilder()
    }
  }

  build() {
    Column() {
      TestNewPage({ stockBottomTypeBuilder: this.StockBottomTypeBuilder })
    }
  }
}

// TestNewPage.ets
@Component
export struct TestNewPage {
  @BuilderParam stockBottomTypeBuilder: () => void;

  build() {
    Column() {
      this.stockBottomTypeBuilder()
    }
  }
}

更多关于HarmonyOS 鸿蒙Next @Builder渲染UI不展示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-builderparam-V13#尾随闭包初始化组件 闭包场景下 有且仅有一个使用@BuilderParam装饰的属性。

1、如果想要正常显示,可以封装成全局组件函数:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-wrapbuilder-V13

2、也可以使用以下写法:

class Tmp {
  paramA1: string = '';
}

@Builder function parentBuilder($$: Tmp) {
  Row() {
    Column() {
      Text(`parentBuilder===${$$.paramA1}`)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
      childBuilder({paramA1: $$.paramA1})
    }
  }
}

@Builder
function childBuilder($$: Tmp) {
  Row() {
    Column() {
      Text(`childBuilder===${$$.paramA1}`)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
      grandsonBuilder({paramA1: $$.paramA1})
    }
  }
}

@Builder function grandsonBuilder($$: Tmp) {
  Row() {
    Column() {
      Text(`grandsonBuilder===${$$.paramA1}`)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
    }
  }
}

@Entry
@Component
struct Parent {
  @State label: string = 'Hello';
  build() {
    Column() {
      parentBuilder({paramA1: this.label})
      Button('Click me').onClick(() => {
        this.label = 'ArkUI';
      })
    }
  }
}

更多关于HarmonyOS 鸿蒙Next @Builder渲染UI不展示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next @Builder渲染UI不展示”的问题,可能的原因及解决方向如下:

  1. 组件未正确注册:检查你使用的UI组件是否已经在系统中正确注册。如果组件未注册,系统将无法识别并渲染该组件。

  2. 布局文件错误:检查XML或JSON布局文件是否存在语法错误,如标签未闭合、属性设置错误等。这些错误可能导致布局文件无法正确解析,从而影响UI展示。

  3. 数据绑定问题:如果你使用了数据绑定技术,确保数据源已正确初始化,并且绑定表达式无误。数据未正确绑定到视图上也会导致UI不展示。

  4. 生命周期管理:确认你的页面或组件生命周期管理是否正确。例如,在页面未完全加载时尝试更新UI可能会导致更新无效。

  5. 系统或环境问题:尝试在不同的设备或模拟器上运行你的应用,以排除特定环境导致的问题。同时,确保你的鸿蒙系统版本与开发环境兼容。

  6. 日志与调试:查看系统日志,查找与UI渲染相关的错误信息。使用调试工具逐步跟踪代码执行,定位问题所在。

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

回到顶部