通过迁移到 Flutter 2,我收到以下错误。
lib/blocs/chuck_category_bloc.dart:12:7: 错误:“StreamSink?”类型的值无法从返回类型为“StreamSink
下面是代码
ImportError: Could not import PIL.Image. The use of `load_img` requires PIL.
答案 0 :(得分:1)
我在升级到 flutter 2 后遇到了与您完全相同的问题。我设法通过使用以下方法解决了这个问题:
class ChuckBloc {
ChuckRepository ? _chuckRepository;
final _chuckDataController = StreamController<Response<chuckResponse>>();
bool ? _isStreaming;
StreamSink<Response<chuckResponse>> get chuckDataSink =>_chuckDataController.sink;
Stream<Response<chuckResponse>> get chuckDataStream =>_chuckDataController!.stream;
ChuckBloc(String category) {
_chuckRepository = ChuckRepository();
_isStreaming = true;
fetchChuckyJoke(category);
}
//the rest of your code here...
}
您可以删除“?”在chuckDataSink 上也是如此,因为它不会为空
答案 1 :(得分:-2)
dart 2.12 是一些带有空值的提取物
所以
_chuckDataController 从开始到使用都没有初始化
ChuckBloc {
final _chuckDataController PublishSubject<Response<chuckResponse>>();
StreamSink<Response<chuckResponse>> get chuckDataSink => _chuckDataController.sink;