You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中ValueNotifier包装的变量无法更新问题求助

问题根源

你每次调用CurrentLanguages()都会生成一个全新的类实例,这是核心错误:

  • 在_sendBackLanguage方法里,你修改的是某一个CurrentLanguages实例的sourceLang/outputLang值;
  • 但打印时又新建了CurrentLanguages()实例,这个新实例的状态完全是初始值,和之前修改的实例毫无关联,所以永远打印初始的English、French。
修复方案

要保证整个流程中操作的是同一个CurrentLanguages实例,常见实现方式:

  • 用ChangeNotifierProvider把CurrentLanguages实例注入到应用的Widget树中,在需要调用方法或获取状态的地方,通过Provider.of<CurrentLanguages>(context)获取同一个实例;
  • 或者把CurrentLanguages设计成单例模式,确保全局仅存在一个实例。
  • 打印时必须使用你之前修改过状态的那个实例,而不是新建实例。

内容的提问来源于stack exchange,提问作者user14080007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:55:18