问题描述
未为该类型定义 getter 'value' '行为主体'。
final _brightness = BehaviorSubject<Brightness>();
...
if (_brightness.value == Brightness.light) { ... } // error is here
那么如何从value
获取BehaviorSubject
?
使用 rxdart:^0.26.0
解决方法
这是因为值 getter 不是由 BehaviorSubject 类实现的,这个函数属于 ValueStreamExtensions 文件,它本身是 ValueStream 类上的扩展方法文件,如果您希望在代码中使用任何类型的扩展函数,那么 BehaviorSubject 是由它实现的您应该首先将扩展文件导入到您的代码文件中,在这种情况下只需添加
import numpy as np
另外,请注意,要使用 BehaviorSubject 类,您也应该导入它
import 'package:rxdart/src/streams/value_stream.dart';
或直接导入主 Rx 库文件,该文件导入您可能想在代码中使用的其他依赖项 " 这是推荐的方式 "
import 'package:rxdart/src/subjects/behavior_subject.dart';
此外,BehaviorSubject 本身有一个名为 valueWrapper 的 getter,它保存你的主题的最新值,你可以直接使用这个 getter
这里有更多关于 dart 扩展方法的信息 https://dart.dev/guides/language/extension-methods
,您提供的代码读起来好像您想从存储在 BehaviorSubject 中的亮度实例中获取值。
https://pub.dev/documentation/rxdart/latest/rx/BehaviorSubject-class.html
一个特殊的 StreamController,它捕获已添加到控制器的最新项目,并将其作为第一项发送给任何新的侦听器。
您的 _brightness 变量不是来自 Brightness 类型,而是它的 BehaviorSubject 类型。 因此,您必须使用侦听器订阅它,您将获得已添加到 BehaviorSubject 的最新值。