// 创建新实例并使用给定对象初始化
let storage = new LocalStorage({ 'PropA': 47 });
@Entry(storage) // 使LocalStorage可从@Component组件访问---注入实例
@Component
struct LocalStoragePage {
// @LocalStorageLink变量装饰器声明新变量storLink1与LocalStorage中的'PropA'属性建立双向绑定
@LocalStorageLink('PropA') storLink1: number = 1;
build() {
Column() {
Text('-------LocalStorage-------').fontColor(Color.Red).fontSize(24)
Text(`storLink1: ${this.storLink1}`).fontSize(20).fontWeight(600)
.onClick(() => {
this.storLink1++;
})
Button('修改')
.onClick(() => {
storage.set('PropA', 100)
})
ComA()
}
.width('100%').padding(20).justifyContent(FlexAlign.Start).alignItems(HorizontalAlign.Start)
}
}
@Component
struct ComA {
build() {
Column() {
Text(`ComA`)
ComB()
}.justifyContent(FlexAlign.Start).alignItems(HorizontalAlign.Start)
}
}
@Component
struct ComB {
@LocalStorageLink('PropA') storLink2: number = 1; //双向
@LocalStorageProp('PropA') storLink3: number = 1; //单向
build() {
Column() {
Text(`ComB_link: ${this.storLink2}`)
.onClick(() => {
this.storLink2 += 10
})
Text(`ComB_prop: ${this.storLink3}`)
.onClick(() => {
this.storLink3 += 10
})
}
}
}
怎么改
方案一:
官网有适配案例,以及规则说明可以参考一下。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-more-cases-V5\#arkts-no-untyped-obj-literals
方案二:
目前代码检查对.ets做了强制语法约束,这种可以提高应用运行效率;推荐使用.ets,.ts暂不做强制约束