首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ChangeNotifier未侦听值更改

ChangeNotifier未侦听值更改
EN

Stack Overflow用户
提问于 2021-02-28 09:24:38
回答 1查看 393关注 0票数 0

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

代码语言:javascript
复制
class setID with ChangeNotifier{
String studyID;

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

在main.dart中,

代码语言:javascript
复制
return MultiProvider(
  providers: [
    ChangeNotifierProvider(create: (_) => setID()),
    // others providers here
    ],
  child: MaterialApp(
      home: Wrapper(),
    ),

在wrapper.dart中,

代码语言:javascript
复制
final studyID = Provider.of<setID>(context).studyID;

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

EN

回答 1

Stack Overflow用户

发布于 2021-02-28 11:51:24

只需将代码从

代码语言:javascript
复制
providers: [
    ChangeNotifierProvider(create: (_) => setID()),
    // others providers here
    ],

致,

代码语言:javascript
复制
providers: [
    ChangeNotifierProvider<setID>(create: (_) => setID()),
    // others providers here
    ],

在wrapper中获取提供程序侦听器为

代码语言:javascript
复制
final studyID = Provider.of<setID>(context);

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66405065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档