【问题标题】:ChangeNotifier not listening to value changeChangeNotifier 不监听值变化
【发布时间】:2021-05-29 23:17:19
【问题描述】:

我想在值从 null 更改为数字时通知包装器,但包装器似乎没有收到更改。检查下面的代码:

class setID with ChangeNotifier{
String studyID;

void setStudyID(String study){
  studyID = study;
  notifyListeners();
  }
}

在 main.dart 中,

return MultiProvider(
  providers: [
    ChangeNotifierProvider(create: (_) => setID()),
    // others providers here
    ],
  child: MaterialApp(
      home: Wrapper(),
    ),

在 wrapper.dart 中,

final studyID = Provider.of<setID>(context).studyID;

当 setID 类中的值发生变化时,包装器中不会收到任何值。谁能帮帮我?提前谢谢你。

【问题讨论】:

    标签: flutter flutter-provider flutter-change-notifier


    【解决方案1】:

    只需更改代码

    providers: [
        ChangeNotifierProvider(create: (_) => setID()),
        // others providers here
        ],
    

    到,

    providers: [
        ChangeNotifierProvider<setID>(create: (_) => setID()),
        // others providers here
        ],
    

    并在包装器中获取提供者侦听器

    final studyID = Provider.of<setID>(context);
    

    这里的问题是 ChangeNotifierProvider 不知道要监控哪个变量/类对象。它应该可以解决问题。更多信息请阅读Providers的官方文档

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      相关资源
      最近更新 更多