簡體   English   中英

沒有為 BehaviorSubject<> 類型定義 getter 'value'

[英]The getter 'value' isn't defined for the type BehaviorSubject<>

在我更新代碼以適應 flutter null 安全后,下面的代碼給了我錯誤

沒有為“BehaviorSubject”類型定義吸氣劑“值”。

final _brightness = BehaviorSubject<Brightness>();
...
if (_brightness.value == Brightness.light) { ... } // error is here

那么如何從BehaviorSubject中獲取value呢?

使用 rxdart:^0.26.0

This is because the value getter is not implemented by BehaviorSubject class this function belongs to ValueStreamExtensions file which itself is an extension method file on the ValueStream class which BehaviorSubject is implemented by if you wish to use extension function of any type in your code you should first在這種情況下,將擴展文件導入到您的代碼文件中,只需添加

import 'package:rxdart/src/streams/value_stream.dart';

另外,請注意,對於使用 BehaviorSubject class 您也應該導入它

import 'package:rxdart/src/subjects/behavior_subject.dart';

或直接導入主 Rx 庫文件,該文件導入您可能想在代碼中使用的其他依賴項,如“這是推薦的方式”

import 'package:rxdart/rxdart.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 捕獲已添加到 controller 的最新項目,並將其作為第一個項目發送給任何新的偵聽器。

您的 _brightness 變量不是來自 BehaviorSubject 類型的 Brightness 類型。 因此,您必須訂閱一個監聽器,您將獲得已添加到 BehaviorSubject 的最新值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM