我想将文件的内容添加到列表中,但不知何故列表似乎没有填满。也许我们在这里需要一些异步代码。
请帮忙!
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));
});
}
}
谢谢。
答案 0 :(得分:0)
尝试获取没有 listen
的目录:
usersDirectory.listSync(recursive: false).forEach((userFile) {
Map<String, dynamic> userFileContent = jsonDecode(await File(userFile.uri.path).readAsStringSync());
models['users'].add(User.fromJson(userFileContent));
);