开始学习鸿蒙开发,持续整理学习过程中发现的一些常见问题,仅此记录汇总,如能帮助大家定位问题更好~~~ 也欢迎大家在评论区留言自己所遇到的问题,我也可以更新到这~~~
自定义组件-自定义容器组件
常见错误:
'TestWidget' must have one and only one property decorated with @BuilderParam, and its @BuilderParam expects no parameter.
以下代码可以解决此错误。
Component 版本
要想自定义一个支持添加子组件的容器组件,如何实现呢?
代码如下:
@Component
struct Test {
@BuilderParam child: () => object;
name: string = "" // name 表示的是支持外部传入的参数变量
build() {
this.child()
}
}
核心是: @BuilderParam child: () => object;
BuilderParam 修饰符的使用,声明 属性 child,返回一个对象。 组件添加 child 属性后,表示该组件具备了额外添加子组件的能力,接下来在需要添加子组件的地方使用 child 属性做占位即可。
之后,在你需要使用 TestWidget 的地方,正常插入子组件就行了,类似与 在 Row() 中插入一个 Text()似的
如何使用:
// 调用
@Component
struct TestCall {
build() {
Test({ name: "名字" }) {
Text("Hello")
}
}
}
ComponentV2 版本
解释的话不多说,直接上代码
重点在于: @Param nameV2: string = "" 变量,需要额外用 @Param 修饰符来修饰一下子
@Param 装饰器的相关说明,参考官方文档:developer.huawei.com/consumer/cn…
定义组件:
@ComponentV2
struct TestV2 {
@BuilderParam child: () => object;
@Param nameV2: string = ""
build() {
this.child()
}
}
调用:
// 调用
@Component
struct TestCallV2 {
build() {
TestV2({ nameV2: "222" }) {
Text("Hello")
}
}
}
DevEco Studio 编译报错日志不明确
在使用 DevEco Studio 编译时,如果报错日志不直观,只有简短的几句话,很难具体定位,比如如下默认报错信息,鬼知道到底是啥原因。。。

这个时候,只需要打开一个配置开关,就可以输出详细的错误日志了,具体位置在:
hvigor -> hvigor-config.json5 中
将下边属性设置为 true 就行了
"debugging": {
"stacktrace": true // 是否启用堆栈跟踪。默认值false
},
打开开关后,再来看日志输出,是不是详细了太多太多。。。。
