HarmonyOS 状态管理之ObjectLink的疑问

以下代码中,@ObjectLink修饰了 price 对象,而在第二个 Text 组件中,我们并不直接将 price.mPriceNormal 赋值给 Text,而是通过 getPriceText() 进行间接引用

问题:当外部改变 price 对象中的 mPriceNormal 属性时,底层框架是否会准确检测到第二个 Text 需要重绘?第一个 Text 会不会也被重绘

@Component
struct PriceWidget {
  @ObjectLink price: Price

  build() {
    Stack({ alignContent: Alignment.End }) {
      Row() {
        Text(“price”)
        Text(this.getPriceText()).fontSize(15).fontColor(this.getPriceColor())
      }
    }.width(75)
  }

  getPriceText(): string {
    let price = this.price
    if (price == null) {
      return “”
    } else if (price.mPriceNormal == null || isNaN(price.mPriceNormal) || !isFinite(price.mPriceNormal)) {
      return “”
    } else {
      return price.mPriceNormal.toFixed(this.accuracy);
    }
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

状态变量是与自定义组件绑定的,因此当状态变量改变的时整个自定义组件都会重新渲染,因此两个Text都会重新渲染

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS @ObjectLink和@State相关疑问
259浏览 • 1回复 待解决
HarmonyOS 状态管理咨询
370浏览 • 1回复 待解决
HarmonyOS 关于状态管理
162浏览 • 1回复 待解决
HarmonyOS 关于deliveryWithInstall疑问
670浏览 • 1回复 待解决
HarmonyOS关于RichText疑问
837浏览 • 1回复 待解决
HarmonyOS 企业证书疑问
197浏览 • 1回复 待解决
web组件cookie使用
1264浏览 • 1回复 待解决
HarmonyOS getRawFileContentSync 疑问
11浏览 • 1回复 待解决
HarmonyOS 关于手动签名疑问
519浏览 • 1回复 待解决
状态管理相关问题,有人知道吗?
676浏览 • 1回复 待解决
HarmonyOS 应用相机开发疑问
181浏览 • 1回复 待解决
mysql varchar类型疑问
2272浏览 • 1回复 待解决
HarmonyOS 关于ArkTS UI样式文件疑问
372浏览 • 1回复 待解决