flutter 如何在构造函数中初始化变量?

s5a0g9ez  于 2023-01-27  发布在  Flutter
关注(0)|答案(1)|浏览(193)

我正在学习如何使用干净的架构,我刚从存储库(appwrite)开始,并使用了单例模式,现在我希望我的AuthService类使用存储库并继续。
但是我在这门课上有一个问题:

import 'package:appwrite/appwrite.dart';
import 'package:mandi/infrastructure/repositories/appwrite_service.dart';

class AuthService {
  final AppwriteService _appwriteService;

  AuthService({AppwriteService appwriteService})
      : _appwriteService = appwriteService;

  Future<void> register(
    String email,
    String password,
    String firstName,
    String lastName,
  ) async {
    final Account account = Account(_appwriteService.client);
    account.create(
      userId: ID.unique(),
      email: email,
      password: password,
      name: '$firstName $lastName',
    );
  }
}

构造函数在“appwriteService”处出错,因为“参数”appwriteService“的值不能为”null“,这是由于其类型所致,但隐式默认值为”null“。请尝试添加显式非”null“默认值或”required“修饰符。"
我刚刚在这个平台上读到,在“:”之后是初始化器字段,然而,编译器仍然抱怨它可能是空的。
我不知道怎么解决这个问题。

k7fdbhmy

k7fdbhmy1#

请尝试以下代码块:
如果需要命名构造函数,必须给予required

AuthService({ required AppwriteService appwriteService})
      : _appwriteService = appwriteService;

如果没有命名构造函数,您可以使用如下命令:

AuthService(AppwriteService appwriteService)
      : _appwriteService = appwriteService;

相关问题