0

我想在值从 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 类中的值发生更改时,包装器中不会收到任何值。谁能帮帮我?先感谢您。

4

1 回答 1

1

只需将代码从

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

至,

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

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

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

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

于 2021-02-28T03:51:24.113 回答