flutter getx 中.obs 的方法refresh方法

如声明

Dart 复制代码
var badgeInfo = F13BadgeEntity().obs

F13BadgeEntity是自定义类

这样定义,直接替换整个对象才会更新,(前提是调用的地方有Obx 会GetBuilder)

场景 1:​直接替换整个对象(无需 refresh())​

复制代码
// ✅ 正确用法:替换整个对象
badgeInfo.value = F13BadgeEntity(count: 5);

场景 2:​仅修改对象内部属性(需 refresh())​

复制代码
// ❌ 直接修改内部属性不会触发更新
badgeInfo.value.count = 5; 
// ✅ 必须手动调用 refresh() 强制更新
badgeInfo.refresh();

refresh() 的适用场景

场景 是否需要 refresh() 原因
替换整个对象(badgeInfo.value = newEntity) ❌ 不需要 .obs 自动检测引用变化
修改可观察属性(如 count.value = 5) ❌ 不需要 属性本身是 .obs
修改非可观察属性(如 badgeInfo.value.count = 5) ✅ 需要 GetX 无法追踪非可观察属性的变化
强制 UI 无差别刷新 ✅ 需要 即使数据未变化也强制更新

在 GetX 中,badgeInfo.refresh() 的作用是 ​强制触发 UI 更新

  • badgeInfo.refresh() 是 GetX 提供的强制刷新方法:
    • 它会通知所有观察者(如 Obx)立即更新 UI,即使数据未发生实际变化。
    • 常用于 对象内部属性被修改但未触发自动更新 的场景。
相关推荐
雪铃儿1 小时前
Flutter 双端热更新新方案:基于 Dart 官方动态模块的 flutter_patcher 1.0.0
flutter·hotfix
好的佩奇7 小时前
Dart 之方法、操作符与可调用对象
android·flutter·dart
恋猫de小郭7 小时前
Flutter Impeller Vulkan 内存持续上涨,问题没想到是文字阴影
android·前端·flutter
传奇开心果1 天前
【Flutter踩坑排雷】第3课:const 误用坑|const 错误使用引发 UI 异常与性能损耗
android·flutter
行者-全栈开发1 天前
Flutter 插件 device_calendar_plus 开源鸿蒙适配实战:从权限弹窗失灵到循环日程跑通
flutter·跨平台·harmonyos·arkts·日历·适配·开源鸿蒙
恋猫de小郭1 天前
Flutter 开始支持 Jetpack Compose Platform View
android·前端·flutter
SoaringHeart2 天前
Flutter 查缺补漏:@JsonKey 属性全解,让模型层不再被后端字段牵着走
flutter
恋猫de小郭2 天前
Flutter 可以更直接地调用原生 API 了,Dart Direct Native Interop
android·前端·flutter
码点2 天前
二.Flutter 速成第二课:核心概念与第一个自定义页面
flutter