dart - 将文件内容添加到列表不起作用
问题描述
我想将文件的内容添加到列表中,但不知何故,列表似乎没有被填满。也许我们在这里需要一些异步代码。
请帮忙!
class App {
Map<String, List<Model>> models = {
'users': List<User>(),
'groups': List<Group>(),
'events': List<Event>()
};
App() {
loadUsers();
print(models['users']); // prints empty list: []
}
void loadUsers () {
Directory usersDirectory = Directory.fromUri(Uri(path: './app/data/users'));
usersDirectory.list(recursive: false).listen((FileSystemEntity userFile) async {
Map<String, dynamic> userFileContent = jsonDecode(await File(userFile.uri.path).readAsString());
models['users'].add(User.fromJson(userFileContent));
});
}
}
谢谢你。
解决方案
尝试获取没有的目录listen
:
usersDirectory.listSync(recursive: false).forEach((userFile) {
Map<String, dynamic> userFileContent = jsonDecode(await File(userFile.uri.path).readAsStringSync());
models['users'].add(User.fromJson(userFileContent));
);
推荐阅读
- python - 如何在 Python 3.7 中单步执行大型有序字典?
- c# - 在 Unity 2D 中对多个对象使用相同的布尔值
- python - 用百分比绘制条形图
- java - 如何在异常块中获取 java.util.function 输入参数
- javascript - 向 CSS 媒体查询添加重要信息
- javascript - ExpressJS 路由中的工作线程,有什么问题吗?
- c# - SignalR 客户端集线器事件在 IIS 上部署后未触发
- r - drake R - 是否可以通过触发器在功能上生成目标
- android - 为什么工作经理不使用 JobScheduler for 21 API
- javascript - 哪个记录器与异步等待量角器脚本一起使用?