【问题标题】:Flutter null-safety migration stuck on "named parameter isn't defined" errorsFlutter 空安全迁移卡在“未定义命名参数”错误
【发布时间】:2021-06-28 21:20:30
【问题描述】:

我正在尝试按照 this guidethis video 将我的一个项目迁移到 null-safety,但我在升级我的依赖项和在 Web 界面中查看迁移建议之间陷入了困境。我设法将我的项目从 Flutter 1 升级到 Flutter 2,以将所有依赖项更新到它们的 null 安全版本,除了 build_runner 作为开发依赖项,但 apparently we can ignore that。现在,当我运行dart migrate 时,我在终端中得到了这样的结果:

Analyzing project...
[---------------------------------------------------------------------------------------------------------------------------------------------------------------\]
23 analysis issues found:
  error • The named parameter 'email' isn't defined at lib/screens/email_screen.dart:38:11 • (undefined_named_parameter)
  error • The named parameter 'password' isn't defined at lib/screens/email_screen.dart:39:11 • (undefined_named_parameter)
  error • The named parameter 'errorText' isn't defined at lib/screens/email_screen.dart:124:29 • (undefined_named_parameter)
  error • The named parameter 'errorText' isn't defined at lib/screens/email_screen.dart:128:29 • (undefined_named_parameter)
  error • The named parameter 'errorText' isn't defined at lib/screens/first_name_screen.dart:112:27 • (undefined_named_parameter)
  error • The named parameter 'data' isn't defined at lib/screens/onboarding_screen.dart:47:17 • (undefined_named_parameter)
  error • The named parameter 'styleSheet' isn't defined at lib/screens/onboarding_screen.dart:49:17 • (undefined_named_parameter)
  error • The named parameter 'onTapLink' isn't defined at lib/screens/onboarding_screen.dart:59:17 • (undefined_named_parameter)
  error • The named parameter 'verificationId' isn't defined at lib/screens/phone_code_screen.dart:77:9 • (undefined_named_parameter)
  error • The named parameter 'smsCode' isn't defined at lib/screens/phone_code_screen.dart:78:9 • (undefined_named_parameter)
  error • The named parameter 'phoneNumber' isn't defined at lib/screens/phone_code_screen.dart:149:7 • (undefined_named_parameter)
  error • The named parameter 'verificationCompleted' isn't defined at lib/screens/phone_code_screen.dart:150:7 • (undefined_named_parameter)
  error • The named parameter 'verificationFailed' isn't defined at lib/screens/phone_code_screen.dart:156:7 • (undefined_named_parameter)
  error • The named parameter 'codeSent' isn't defined at lib/screens/phone_code_screen.dart:159:7 • (undefined_named_parameter)
  error • The named parameter 'codeAutoRetrievalTimeout' isn't defined at lib/screens/phone_code_screen.dart:166:7 • (undefined_named_parameter)
  error • The named parameter 'forceResendingToken' isn't defined at lib/screens/phone_code_screen.dart:171:7 • (undefined_named_parameter)
  error • The named parameter 'errorText' isn't defined at lib/screens/phone_code_screen.dart:288:31 • (undefined_named_parameter)
  error • The named parameter 'errorText' isn't defined at lib/screens/phone_code_screen.dart:293:31 • (undefined_named_parameter)
  error • The named parameter 'phoneNumber' isn't defined at lib/screens/phone_number_screen.dart:49:9 • (undefined_named_parameter)
  error • The named parameter 'verificationCompleted' isn't defined at lib/screens/phone_number_screen.dart:50:9 • (undefined_named_parameter)
  error • The named parameter 'verificationFailed' isn't defined at lib/screens/phone_number_screen.dart:57:9 • (undefined_named_parameter)
  error • The named parameter 'codeSent' isn't defined at lib/screens/phone_number_screen.dart:92:9 • (undefined_named_parameter)
  error • The named parameter 'codeAutoRetrievalTimeout' isn't defined at lib/screens/phone_number_screen.dart:102:9 • (undefined_named_parameter)

Note: analysis errors will result in erroneous migration suggestions.

Please fix the analysis issues (or, force generation of migration suggestions by re-running with --ignore-errors).

现在,如果我以前两个错误为例,这里是它指向的代码行:

final emailCredential = EmailAuthProvider.credential(
          email: _emailAddress.trim(),
          password: randomPassword,
        );

从 Firebase Auth 调用这段代码:

/// Creates a new [EmailAuthCredential] from a given email and password.
  static AuthCredential credential({
    required String email,
    required String password,
  }) {
    return EmailAuthCredential._credential(email, password);
  }

如您所见,两个命名参数都定义得很好,所以我真的不明白问题出在哪里。我检查了所有其他错误,它们都是相同的:所有命名参数都存在并且实际上已定义。

我错过了什么?我可以安全地忽略这些错误并继续进行其余的迁移吗?

【问题讨论】:

    标签: flutter dart dart-null-safety


    【解决方案1】:

    问题是由于安装了过时的 Dart,因为我没有使用随 Flutter 安装的 Dart。将 Dart 升级到最新版本后,问题解决了。

    【讨论】:

    • 这也搞到我了,不过我用的是 Flutter 自带的版本而不是系统版本:/path/to/fluttersdk/bin/cache/dart-sdk/dart migrate
    猜你喜欢
    • 2021-04-17
    • 2022-01-23
    • 2018-05-14
    • 2020-12-02
    • 2019-03-22
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多