【发布时间】:2022-08-14 10:28:33
【问题描述】:
我努力改变我的供应商的价值观。
它们位于我的小部件树的顶部:
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => User(),
),
ChangeNotifierProvider(
create: (context) => DisplayModel(),
),
],
child: MyApp(),
),
);
这是我尝试构建函数以更改提供程序值的类。 DisplayChange() 应该允许用户为 DisplayModel 设置自己的值。
class DisplayModel extends ChangeNotifier {
String blogId;
String title;
String subtitle;
String desc;
String author;
String publisherId;
String imageUrl;
DisplayModel(
{this.blogId,
this.title,
this.subtitle,
this.desc,
this.author,
this.publisherId,
this.imageUrl});
factory DisplayModel.fromDocument(doc) {
return DisplayModel(
blogId: doc[\'blogId\'],
title: doc[\'title\'],
subtitle: doc[\'subtitle\'],
desc: doc[\'desc\'],
author: doc[\'author\'],
publisherId: doc[\'publisherId\'],
imageUrl: doc[\'imageUrl\'],
);
}
DisplayChange(DisplayModel) {
DisplayModel (DisplayModel);
notifyListeners();
return DisplayModel();
}
}
我在 MyApp() 中调用提供程序,我希望用户能够使用 loadebBlog 的值更改 DisplayModel 的实例(它使用与 DisplayModel 相同的构造函数构建)并被重定向到应用程序的主页
child: GestureDetector(
onTap: () {
Provider.of<DisplayModel>(
context,
listen: false,
).DisplayChange(loadedBlog);
print (\"ok\");
Navigator.of(this.context).pushReplacementNamed(\'home\');
},
child: Icon(Icons.ios_share),),
但是当点击按钮时,它会返回错误
The following NoSuchMethodError was thrown while handling a gesture:
Class \'BlogModel\' has no instance method \'call\'.
Receiver: Instance of \'BlogModel\'
Tried calling: call(Instance of \'BlogModel\')
逻辑好不好?我错过了什么?
感谢您的时间。
此致, 朱利安
标签: flutter dart flutter-provider nosuchmethoderror