flutter_reactive_value : Getting an Error with just Importing the Package

标签 flutter dart flutter-state flutter-reactive-value

我按照说明安装 flutter_reactive_value here .

flutter pub 添加 flutter_reactive_value

我在 main.dart 上添加了导入:

导入'package:flutter_reactive_value/flutter_reactive_value.dart';

据我所知。

我使用的是 dart 2.18。我尝试了这个包的所有版本(1.0.0 - 1.0.3)。另外,我下载了位于here的示例(整个项目文件夹)并得到下面列出的相同错误。我尝试将其作为 Flutter Web(chrome)和 Flutter Windows 应用程序。

Flutter 网络(Chrome)错误:

Launching lib\main.dart on Chrome in debug mode...
main.dart:1
: Error: The getter 'mounted' isn't defined for the class 'Element'.
reactive_value_notifier.dart:30
- 'Element' is from 'package:flutter/src/widgets/framework.dart' ('../flutter/packages/flutter/lib/src/widgets/framework.dart').
framework.dart:1
Try correcting the name to the name of an existing getter, or defining a getter or field named 'mounted'.
      if (elementRef.target?.mounted ?? false) {
                             ^^^^^^^

Failed to compile application.
Exited (sigterm)

flutter Windows 错误:

Launching lib\main.dart on Windows in debug mode...
../lib/src/reactive_value_notifier.dart(30,30): error G4127D1E8: The getter 'mounted' isn't defined for the class 'Element'. [C:\workspace\flutter_reactive_value\example\build\windows\flutter\flutter_assemble.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(247,5): error MSB8066: Custom build for 'C:\workspace\flutter_reactive_value\example\build\windows\CMakeFiles\6f135da36535027a04cd8738f00853c4\flutter_windows.dll.rule;C:\workspace\flutter_reactive_value\example\build\windows\CMakeFiles\335e6badeb606c6fb4bbef90392b261d\flutter_assemble.rule;C:\workspace\flutter_reactive_value\example\windows\flutter\CMakeLists.txt' exited with code 1. [C:\workspace\flutter_reactive_value\example\build\windows\flutter\flutter_assemble.vcxproj]
Exception: Build process failed.
Exited (sigterm)

有什么想法吗?我真的希望使用 flutter_reactive_value 提供的简单状态管理。谢谢!

最佳答案

您收到此错误的原因是 this lineflutter_reactive_value package .

正如错误所述,没有为 Element 类定义 getter mounted

为什么没有定义?因为this getter was added to the BuildContext and Element only in flutter 3.7.0 (更准确地说, in 3.4.0-27.0-pre ),并且您正在使用下面的某个版本。 Here are the release notes .

你能做什么?

  1. 将 flutter 升级到 3.7.0 或更高版本
  2. 使用flutter_reactive_value package 1.0.1 或更低版本,因为 getter mounted 已在 1.0.2 版本中添加到此包中。
  3. 根本不要使用这个包。它仅提供语法糖,可以用开箱即用的 ValueListenableBuilder 替换。

关于flutter_reactive_value : Getting an Error with just Importing the Package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76667510/

相关文章:

firebase - 如何使用云功能身份验证触发 flutter/Dart

ios - Flutter 构建失败 'UserAgent.h' 找不到文件

Flutter 提供程序状态管理、注销概念

html - 客户端上的 Dart HTML 模板 : Separating HTML from Dart code

flutter - 无法使用 Flutter Stateful 小部件

flutter - 业务逻辑和 UI 逻辑有什么区别?

dart - 带有容器高度的图标上的Flutter TextFormField

Azure DevOps中的Flutter管道

Flutter,交错 flutter_staggered_grid_view 使每个图 block 可点击而不破坏布局

flutter - 创建一个没有空格的用户名验证器