0

在我的应用程序中,我有AddServerScreenPage,它允许我将服务器添加到 Cubit。服务器对象有两个属性,别名和地址。如果要添加的服务器的别名与保存在 Cubit 中的服务器之一匹配,我不会添加服务器并向用户显示错误消息。但如果尚未添加,我将服务器添加到 Cubit 并返回主页。

我的问题是,Cubit 应该在此处进行验证Navigator.pop(context)吗?如果我在 UI 中执行所有这些操作,Cubit 将不得不Future从函数返回,这感觉不对。我需要以正确的方式解决这个问题。

ServerState我将在下面分享简化版ServerCubit

服务器状态:

class ServerState {
  final List<Server> servers;
  const ServerState(this.servers);
}

服务器尺码:

class ServerCubit extends Cubit<ServerState> {
  ServerCubit() : super(const ServerState([]));

  void addServer(String address, String alias) {
    List<Server> same = state.servers.where((e) => e.alias == alias).toList();
    if (same.isEmpty) {
      Server server = Server(address, alias);
      emit(ServerState([...state.servers, server]));
    }
  }
}
4

0 回答 0