HarmonyOS Prop的用法

// A定义
@State factorChange: number = 0

// B定义
@Prop factorChange: number = 0
@State logoMarginTop: number = this.factorChange * 2

// 关联
TopBarView({ factorChange: this.factorChange })

A的factorChange发生变化时,B的factorChange发生了变化(单向同步),但是B的logoMarginTop没有变化。希望logoMarginTop也发生变化要怎么做?

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

以在B内部给factorChange添加一个观察者,然后在观察回调内给logoMarginTop赋值,以下为代码示例:

// xxx.ets
import image from '@ohos.multimedia.image'

@Entry
@Component
struct SelectExample {
  @State factorChange: number = 0

  build() {
    Column() {
      Text(this.factorChange + '')
        .onClick(() => {
          this.factorChange++
        })
      TopBarView({ factorChange: this.factorChange })
    }.width('100%')
  }
}

@Component
struct TopBarView {
  @Prop @Watch('factorDidChange') factorChange: number = 0
  @State logoMarginTop: number = 0

  build() {
    Column() {
      Text('TopBarView')
      Text('factorChange=' + this.factorChange)
      Text('logoMarginTop=' + this.logoMarginTop)
    }
  }

  factorDidChange() {
    this.logoMarginTop = this.factorChange * 2
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS NativeXComponent用法
65浏览 • 1回复 待解决
HarmonyOS PinchGesture用法咨询
377浏览 • 1回复 待解决
HarmonyOS NavPathStack 用法
33浏览 • 1回复 待解决
HarmonyOS 开发@Prop问题
390浏览 • 1回复 待解决
关于measureTextSize用法
840浏览 • 1回复 待解决
HarmonyOS axios用法咨询
315浏览 • 1回复 待解决
InputMethodAbility用法是怎样
7884浏览 • 1回复 待解决
ArkTS关于反射用法
44浏览 • 1回复 待解决
HarmonyOS 多个@Prop变化顺序问题
325浏览 • 1回复 待解决
HarmonyOS @Prop参数传递问题
45浏览 • 1回复 待解决
HarmonyOS 服务卡片metadata用法
55浏览 • 1回复 待解决
getWindow().setBackground用法
4971浏览 • 1回复 待解决
HarmonyOS Matrix2D用法问题
27浏览 • 1回复 待解决
HarmonyOS TS转ArkTS用法问题
312浏览 • 1回复 待解决
resource中string.json用法
7193浏览 • 1回复 已解决
组件入参加@prop和不加区别
1964浏览 • 1回复 待解决
系统监听注册on和off用法问题
1893浏览 • 1回复 待解决