HarmonyOS 鸿蒙Next 在@Builder中调用@BuilderParam不渲染UI嘛?
HarmonyOS 鸿蒙Next 在@Builder中调用@BuilderParam不渲染UI嘛?
代码如下,期待页面展示 测试 测试X,实际展示测试
// TestPage.ets
import { TestNewPageX } from './TestNewPageX'
@Entry
@Component
struct TestPage {
[@Builder](/user/Builder)
async StockBottomTypeBuilder() {
Column() {
Text('测试X')
}
}
build() {
Column() {
TestNewPageX({ stockTypeBuilder: this.StockBottomTypeBuilder })
}
}
}
import { TestNewPage } from "./TestNewPage"
@Component
export struct TestNewPageX {
[@BuilderParam](/user/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](/user/BuilderParam) stockBottomTypeBuilder: () => void;
build() {
Column() {
this.stockBottomTypeBuilder()
}
}
}
更多关于HarmonyOS 鸿蒙Next 在@Builder中调用@BuilderParam不渲染UI嘛?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
当调用自定义组件TestNewPage时,把[@Builder](/user/Builder)作为参数通过this.stockBottomTypeBuilder()的形式传递,当前this会指向自定义组件内部,所以在TestNewPageX组件里面改变stockTypeBuilder的值,自定义组件TestNewPage是感知不到的。可以使用箭头函数的形式把[@Builder](/user/Builder)传递进自定义组件,这样当前this指向会停留在父组件TestNewPageX里,当TestPage传递this.stockBottomTypeBuilder(),改变TestNewPageX中的stockTypeBuilder时,自定义组件TestNewPage就会感知到并重新渲染UI,达到需要的效果,即TestNewPageX.ets修改成下面的demo
//TestNewPageX.ets
import { TestNewPage } from "./TestNewPage"
@Component
export struct TestNewPageX {
@BuilderParam stockTypeBuilder: () => void;
@Builder
async StockBottomTypeBuilder() {
Column() {
Text('测试')
this.stockTypeBuilder()
}
}
build() {
Column() {
TestNewPage({ stockBottomTypeBuilder: () => { this.StockBottomTypeBuilder() }})
}
}
}
更多关于HarmonyOS 鸿蒙Next 在@Builder中调用@BuilderParam不渲染UI嘛?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
谢谢~~
HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。
build() {
Column() {
TestNewPage({ stockBottomTypeBuilder: this.StockBottomTypeBuilder.bind(this) })
}
}
在HarmonyOS鸿蒙Next中,@Builder
注解通常用于组件的自定义构建过程,而@BuilderParam
注解则用于定义构建过程中需要的参数。这两者主要关注于组件的构建逻辑,而非直接涉及UI渲染。
@Builder
和@BuilderParam
主要作用于组件的构造和初始化阶段,它们负责将传入的参数组合并应用到组件的实例上。UI渲染是组件生命周期中的另一个阶段,通常在组件初始化完成后,由系统根据组件的状态和属性进行。
因此,@Builder
中调用@BuilderParam
并不会直接控制或影响UI的渲染。UI渲染是由系统根据组件的当前状态和布局文件自动完成的。
如果你在@Builder
或@BuilderParam
的使用过程中遇到了UI不渲染的问题,很可能是因为其他因素导致的,比如组件的状态未正确更新、布局文件有误、或者渲染过程中发生了异常等。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。在这个页面上,你可以找到专业的客服团队,他们会为你提供更具体的帮助和解决方案。