flutter - Flutter 错误:找不到正确的提供程序>
问题描述
我尝试在此处显示 ListView 构建器,该构建器显示从 AdModel 获取其数据的 CustomAdTile,但是当我运行该项目时,我收到此错误:
错误:在此 MyAds 小部件上方找不到正确的 Provider<List>
这是我的代码:
@override
Widget build(BuildContext context) {
final ads = Provider.of<List<AdModel>>(context);
return StreamProvider<List<Profile>>.value(
value: DatabaseService().profiles,
child: StreamProvider<List<AdModel>>.value(
value: DatabaseService().ads,
child: Directionality(
textDirection: TextDirection.rtl,
child: Scaffold(
appBar: AppBar(
title: Text('My Ads'),
),
body: Column(
children: <Widget>[
Container(
alignment: Alignment.bottomRight,
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Text('Username', style: TextStyle(fontSize: 30),),
),
),
reviewFlag ? Expanded(
child: ListView.builder(
scrollDirection: Axis.vertical,
itemCount:(ads == null) ? 0 : ads.length,
itemBuilder: (context, index){
return
CustomAdTile(adModel: ads[index],);
})
) : Text('Loading'),
],
),
),
),
),
);
}
解决方案
您注册了您的 Provider 吗?
return MultiProvider(
providers: [
ChangeNotifierProvider.value(
value: AchievementProvider(),
),
ChangeNotifierProvider.value(
value: DailyBonusProvider(),
],
child: MaterialApp(
title: 'My Apps',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: HomePage(),
),
);
推荐阅读
- python - 一个小程序的python树莓源代码
- javascript - Javascript中的正则表达式 - 需要允许小数作为第一个字符
- php - 打开网站时,它说它无法处理该请求。为什么?
- sql - 需要知道 Odoo 中包含 Qty On Hand 的表是什么
- angular - Angular 6 材质输入动态占位符是否可行?
- javascript - 在 Django 模板中使用来自服务器的图像
- apache-kafka-streams - 为什么启用了 suppress() 时 Kafka Stream 应用程序会崩溃?
- javascript - 如何正确地向 TypeScript 添加带参数的回调类型?
- sql - 对条件使用不存在
- android - 如何使用 Retrofit 将图像文件从 Android 上传到 ASP.NET(Web Services-ASMX) 上传文件夹