HarmonyOS AppStorage将某个字段设置为null,无法被观测

通过AppStorage.setOrCreate(‘xxx’, null) 的方式,将xxx属性设置为null,无法触发UI页面刷新。

HarmonyOS
2024-10-12 11:15:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

在使用AppStorage时,如果将某个字段设置为null,它将无法被观测。这是因为在HarmonyOS开发框架中,null值不支持持久化存储。如果需要实现字段的可观察性,应该避免将其设置为null。

直接使用 this.属性值 = null 即可,AppStorage.delete 删除属性的前提是没有订阅者,此处loginUser是订阅者,所以无法生效,参考下面demo:

AppStorage.setOrCreate('PropA', 47)  
@Entry()  
@Component  
struct CompA {  
  @Watch('test') @StorageLink('PropA') storageLink: number | null = 1;  
  test() {  
    console.log('storageLink' + AppStorage.get('PropA'))  
  }  
  build() {  
    Column({ space: 20 }) {  
      Text(`From AppStorage ${this.storageLink}`)  
        .onClick(() => {  
          if (this.storageLink) {  
            this.storageLink++  
          }  
        })  
      Button('delete').onClick(() => {  
        this.storageLink = null  
      })  
    }  
  }  
}
分享
微博
QQ
微信
回复
2024-10-12 15:29:52
相关问题
HarmonyOS page和WebView无法设置透明
310浏览 • 1回复 待解决
如何背景颜色设置透明
2473浏览 • 1回复 待解决
如何页面设置深色模式
2106浏览 • 1回复 待解决
TabList find返回总null的问题请教
7396浏览 • 5回复 待解决
RdbPredicates无法声明
82浏览 • 1回复 待解决
转换整个字符串的字符小写
249浏览 • 1回复 待解决
如何判断某个应用是否系统应用
2076浏览 • 1回复 待解决