GetX状态更新后UI没刷新是怎么回事? W″兴慧 提问于 2026-03-20 09:15:20 阅读 33 移动 我用 GetX 写了个购物车页面,点击加减按钮修改商品数量,数据明明变了(打印出来是对的),但界面上的数量没更新。是不是漏了什么? 我的控制器里是这样定义的:RxInt count = 0.obs;,页面里用了 Obx(() => Text('${controller.count}')),按理说应该自动刷新啊? Flutter 我来解答 赞 3 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 端木清梅 Lv1 这种情况我之前也碰到过,基本就是字符串模板的问题。 你在 Obx 里面用了 '${controller.count}',这个字符串插值实际上在 Obx 的回调函数外面就执行了,Obx 根本监听不到 count 的变化。 改成这样就行: Obx(() => Text(controller.count.value.toString())) 或者用 GetX 的语法糖: Obx(() => Text("${controller.count.value}")) 核心要点就是:必须把响应式变量的 .value 放在 Obx 的回调函数内部,让 Obx 能监听到。 还有一种可能是你的 Obx 范围太小了,比如: // 错误 - Obx 只包裹了 Text,但 count 变化时整个 Obx 都会重建 Obx(() => Column( children: [ Text('商品数量:'), Text('${controller.count}') // 这里还是老问题 ], )) 检查一下是不是这两种情况,改一下应该就正常了。 回复 点赞 2026-03-20 09:17 加载更多 相关推荐 2 回答 44 浏览 Material-UI的Checkbox选中状态怎么无法更新? 我在用Material-UI的Checkbox做表单时遇到问题,选中状态明明更新了,但勾选框的显示一直没变化。之前按文档用了useState存数组,但点击其他选项时之前选中的会莫名取消。 代码像这样写... 打工人雪琪 组件 2026-02-06 14:37:22 1 回答 65 浏览 Provider状态更新后UI为什么不刷新? 我在用Flutter的Provider做状态管理,修改了model里的数据,但页面没重新build,这是为啥? 我试过调用notifyListeners(),也确认数据确实变了,但UI就是不动。下面是... 长孙之芳 移动 2026-03-09 20:14:19 2 回答 426 浏览 乐观更新后 UI 没回滚,状态怎么处理? 我用 React 做了个点赞功能,点了之后立刻更新 UI(乐观更新),但请求失败时 UI 没变回去,反而卡在“已点赞”状态。是不是哪里没处理好? 我试过在 catch 里手动 revert 状态,但有... 设计师春芳 优化 2026-03-08 18:15:19 2 回答 273 浏览 Material-UI Select选中值无法更新到状态怎么办? 我在用Material-UI的Select组件时,选中选项后状态一直没变。按照文档写了value和onChange,但控制台打日志发现selected变量还是空的... 代码是这样写的: import... 立顺~ 组件 2026-02-09 21:55:35 2 回答 69 浏览 NodeGui中React组件状态更新后界面不刷新怎么办? 在用NodeGui写桌面应用时,我遇到个奇怪的问题。我用React的useState控制按钮计数,但点击按钮后count没更新,界面还是显示初始值。 代码是这样写的: import { Button ... 诸葛冠羽 框架 2026-01-27 18:53:23 1 回答 5 浏览 Material-UI的Switch怎么绑定受控状态? 我用Material-UI的Switch组件时,想让它受控,但状态总是不同步。点了没反应,控制台也没报错。 我试过用useState初始化值,onChange里调setState,但UI不更新。代码大... 上官艺菲 组件 2026-03-19 20:54:17 1 回答 5 浏览 Material-UI 的 Switch 开关怎么绑定受控状态? 我用 Material-UI 的 Switch 组件时,想让它受控,但状态好像没生效。点了没反应,控制台也没报错,是我写错了啥吗? 我试了用 useState 管理 checked 状态,也传了 on... 诸葛彩云 组件 2026-03-19 16:02:24 2 回答 23 浏览 Material-UI的Checkbox怎么绑定受控状态? 我用Material-UI写了个复选框,但状态好像没生效,点一下没反应。我明明用了useState来管理checked值啊。 试过把onChange里的event.target.checked打印出来... 皇甫令敏 组件 2026-02-27 09:19:19 1 回答 41 浏览 Material-UI的Switch切换后状态没变化是怎么回事? 我在用Material-UI的Switch组件时,发现切换开关后状态一直没变。之前用checkbox没问题,换成Switch后就卡死了。我用了useState控制checked值,代码写成这样: co... 端木瑞玲 组件 2026-02-16 15:50:23 1 回答 109 浏览 MVI架构中异步数据更新后UI没变化怎么办? 我在React项目里尝试用MVI模式实现数据加载功能,但发现当异步请求完成后,UI界面始终显示初始状态。我已经按规范写了Effect和ViewModel,但页面还是没更新,哪里出错了呢? // Vie... 艳花的笔记 框架 2026-02-05 22:59:41
你在 Obx 里面用了
'${controller.count}',这个字符串插值实际上在 Obx 的回调函数外面就执行了,Obx 根本监听不到 count 的变化。改成这样就行:
或者用 GetX 的语法糖:
核心要点就是:必须把响应式变量的
.value放在 Obx 的回调函数内部,让 Obx 能监听到。还有一种可能是你的 Obx 范围太小了,比如:
检查一下是不是这两种情况,改一下应该就正常了。