mon*_*oat 4 dart flutter riverpod
因此,我尝试开始使用 Riverpod 并使用“点击和计数器”默认示例创建一个新的 Flutter 项目。\n一旦我添加了 pubspec
\nflutter_hooks: ^0.18.0\nhooks_riverpod: ^2.0.0\nRun Code Online (Sandbox Code Playgroud)\n和
\n\n\n导入'包:hooks_riverpod / hooks_riverpod.dart';
\n
我在调试控制台上收到此错误,但无法找出问题所在
\n: Error: Method not found: 'Error.throwWithStackTrace'.\n../\xe2\x80\xa6/framework/provider_base.dart:904\n Error.throwWithStackTrace(error, chain);\n ^^^^^^^^^^^^^^^^^^^\n: Error: A non-null value must be returned since the return type 'Never' doesn't allow null.\n../\xe2\x80\xa6/framework/provider_base.dart:898\nNever _rethrowProviderError(Object error, StackTrace stackTrace) {\n ^\nRun Code Online (Sandbox Code Playgroud)\n
Bak*_*ker 16
Error.throwWithStackTrace已在 Dart 2.16(2022 年 2 月 8 日起的 Flutter 版本 2.10)中添加。
https://api.flutter.dev/flutter/dart-core/Error/throwWithStackTrace.html
(检查@Since注释。)
如果您的 Flutter/Dart 版本低于该版本,您将收到您看到的错误。
可能有帮助的两个选项是:
^提前版本)flutter upgrade
Run Code Online (Sandbox Code Playgroud)
如果有问题的软件包(hooks_riverpod: ^2.0.0在您的情况下)列出了^,它将使用不会破坏依赖关系的最新版本。
我猜测当您创建一个新项目并使用相同的依赖项版本时,最初pub get它会将包的较新版本(或该包使用的依赖项的较新版本)下载到依赖于的“pub 缓存”中新的错误 API 方法。
您的项目将将此信息存储在:
<your_project_dir>/dart_tool/package_config.json
Run Code Online (Sandbox Code Playgroud)
min Dart SDK列出的软件包版本通常应从 2.12 更改为 2.16 。(更新:现已更新)这将给我们一个提示,如果我们发现构建失败,则需要更新 Flutter/Dart。
在这个答案的早期版本中,我注意到^包依赖项版本上的前缀应该可以防止这些类型的问题,但我不再确定它是否意味着涵盖底层平台需要更新的情况(如反对对包本身的 API 进行重大更改)。
不管怎样,乍一看,当包版本依赖于 2.0.0 发布时不存在的新核心 Dart API 方法时,从 2.0.0 升级到 3.0.0 可能是有意义的。
Riverpod 的作者还编写了新的 API,因此Error.throwWithStackTrace最新版本的 hooks_riverpod 可能正在使用最新的 API 更改。(您列出的版本 2.0.0 目前是预发布版本)。您可以在 pubspec.yaml 中尝试早期版本的 Riverpod(例如 1.0.3)
| 归档时间: |
|
| 查看次数: |
10874 次 |
| 最近记录: |