尝试从 youtube-search-tutorial 实现 BLoC 时出现颤振错误

Posted

技术标签:

【中文标题】尝试从 youtube-search-tutorial 实现 BLoC 时出现颤振错误【英文标题】:Flutter error while triying to implement BLoC from youtube-search-tutorial 【发布时间】:2019-07-20 08:05:41 【问题描述】:

我在 Flutter 中实现 BLoC 时遇到问题,我按照本教程进行操作:https://github.com/ResoCoder/youtube-search-flutter-bloc

但我收到以下无法调试的编译器消息:

Compiler message:
file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/bloc-0.8.4/lib/src/bloc.dart:24:44: Error: No named parameter with the name 'seedValue'.
_stateSubject = BehaviorSubject<State>(seedValue: initialState);
                                       ^^^^^^^^^
file:///opt/flutter/.pub-cache/hosted/pub.dartlang.org/rxdart-0.21.0/lib/src/subjects/behavior_subject.dart:49:11: Context: Found this candidate, but the arguments don't match.
factory BehaviorSubject(
        ^
Compiler failed on /home/rafa/androidStudioProjects/news/lib/main.dart
Finished with error: Gradle task assembleDebug failed with exit code 1

我正在使用:

Flutter 1.2.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 8661d8aecd (12 days ago) • 2019-02-14 19:19:53 -0800
Engine • revision 3757390fa4
Tools • Dart 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

关于如何修复此错误的任何想法? 谢谢!

【问题讨论】:

【参考方案1】:

我发现了问题,rxdart: 0.21.0 已被重构并破坏 bloc 0.8.4,为了解决此问题,将 rxdart: 0.20.0 添加为 pubspec.loc 的依赖项

【讨论】:

谢谢。请问你是怎么发现的? 这是一个痛苦的调试...但是当我看到错误出现在来自第三方包的调用之间时,特别是 rxdart 包我更新了它,这解决了我的问题...跨度> 【参考方案2】:

我能够通过使用最新的 flutter_bloc 依赖项来解决此问题,目前是 flutter_bloc: ^0.8.0。

【讨论】:

【参考方案3】:

使用最新版本:

  rxdart: ^0.24.1
  bloc: ^4.0.0
  flutter_bloc: ^4.0.0

别忘了:

flutter clean // in case of any error
flutter pub get

如果您更新flutter_bloc,则必须更新bloc。那是因为flutter_bloc 依赖于bloc

还请注意,您不能使用最新的rxdart,因为bloc 依赖于rxdart &gt;=0.18.1 &lt;0.21.0,这实际上很痛苦。

【讨论】:

以上是关于尝试从 youtube-search-tutorial 实现 BLoC 时出现颤振错误的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试从 pyspark 访问 mysql 表。我正在尝试使用:

尝试从智能按钮创建订阅时出错

尝试从 docker 容器访问时,数据存储返回 503

为啥我的 Flask 尝试从不同的目录导入?

尝试使用环境变量从 HostingViewController 呈现 SwiftUI

尝试从数组创建 DAO 记录集