flutter - 连接状态一直在等待
问题描述
在颤振中从数据库中获取数据时, snapShot.ConnectionState 始终处于等待状态,并且循环进度指示器不断加载。
我没有收到任何错误,我正在使用 FutureBuilder 构建我的小部件。
我构建小部件的类
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/event_provider.dart';
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: Provider.of<EventProviders>(context).fetchAndSetEvents(),
builder: (ctx, dataSnapshot) {
if (dataSnapshot.connectionState == ConnectionState.waiting) {
return Center(
child: CircularProgressIndicator(),
);
} else {
return Consumer<EventProviders>(
child: Text('Not found'),
builder: (ctx, eventData, ch) {
if (eventData.events.length <= 0) {
return ch;
} else {
return ListView.builder(
itemCount: eventData.events.length,
itemBuilder: (ctx, index) {
return Container(
child: Text(eventData.events[index].eventName),
);
},
);
}
},
);
}
},
);
}
}
我未来的班级
Future<void> fetchAndSetEvents() async {
final dataList = await DBHelper.getData('user_events');
_events = dataList
.map(
(data) => EventProvider(
eventName: data['event'],
eventDate: data['date'],
id: data['id'],
),
)
.toList();
notifyListeners();
}
}
一些帮助将不胜感激
解决方案
设置听:假
future: Provider.of<EventProviders>(context, listen: false).fetchAndSetEvents(),
推荐阅读
- r - 如何在 R 中的列表列表中识别和计算每个级别的唯一对?
- android - Android Release 版本有一个错误不在调试中
- mongodb - Atlas集群-mongoimport“失败:连接到数据库服务器时出错:没有可访问的服务器”
- java - 递归函数不向Java中的ArrayList添加项目
- python - 比较熊猫模块中的日期
- c++ - 防止使用被覆盖的非虚拟函数 - 正确的方法?
- java - 计算字符串中字母的值 - Java
- java - 将 jar 依赖项添加到 gradle 任务而不实际将其类包含到输出中
- redux-saga - 在 redux-saga 中调用对象的方法时出现奇怪的问题
- javascript - 我无法访问角度服务中存储的(之前获取的)数据