首页 > 解决方案 > 将文件内容添加到列表不起作用

问题描述

我想将文件的内容添加到列表中,但不知何故,列表似乎没有被填满。也许我们在这里需要一些异步代码。

请帮忙!

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));
    });
  }
}

谢谢你。

标签: dart

解决方案


尝试获取没有的目录listen

usersDirectory.listSync(recursive: false).forEach((userFile)  {
  Map<String, dynamic> userFileContent = jsonDecode(await File(userFile.uri.path).readAsStringSync());
  models['users'].add(User.fromJson(userFileContent));
);

推荐阅读