【问题标题】:flutter error: The method 'combineLatest4' isn't defined for the type 'Observable'颤振错误:没有为“Observable”类型定义方法“combineLatest4”
【发布时间】:2020-11-05 23:16:50
【问题描述】:

我的项目 6 个月内从未更新(由某人编写且上次构建成功),但今天我想更新它但遇到了一些错误:

lib/src/blocs/account/account_bloc.dart:69:33: 错误:没有为“AccountBloc”类定义 getter 'Observable'。

尝试将名称更正为现有 getter 的名称,或定义名为“Observable”的 getter 或字段。

似乎Observable 来自rxdart library,但我不确定。

我的代码:

//Merging username and password streams
Stream<bool> get saveValid => Observable.combineLatest4(nameStream, phoneNumberStream, emailStream, addressStream, (name, phoneNumber, email, address) => true);

rxdart 在我的pubspec.yaml 中的版本:rxdart: "&gt;=0.18.1 &lt;0.24.1"

有什么办法解决这个问题吗?

【问题讨论】:

    标签: flutter dart stream observable rxdart


    【解决方案1】:

    RxDart v0.23 用扩展方法替换了 Observable 类。您现在需要改用静态Rx.combineLatest4()。如果你查看 pub.dev 上 RxDart 的更改日志,你会发现你可以运行一个包 rxdart_codemod 来迁移你的 RxDart 代码。

    https://pub.dev/documentation/rxdart/latest/rx/Rx/combineLatest4.html

    【讨论】:

    • 您好,谢谢。但是为什么插件更新如此频繁并且有重大变化?我将来会重新考虑使用颤振编写另一个应用程序。我无法想象两年不更新项目会遇到多少错误
    • 我认为任何低于版本 1 的软件包都可能会频繁更改,其中一些是重大更改。在您的示例中,您已指定您将接受版本 0.18.1 和 0.23.0 之间的 RxDart(在这种情况下包括该重大更改)。如果你担心未来的更新会破坏你的代码,你可以在你的 pubspec 中使用一个固定的版本号:例如rxdart: 0.23.0
    • rxdart: "&gt;=0.18.1 &lt;0.24.1",是因为插件更新导致的flutter compass错误解决了3天痛苦后的变化。以前的开发人员不会遇到这些错误。
    猜你喜欢
    • 2021-05-12
    • 2022-01-17
    • 1970-01-01
    • 2021-10-18
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    相关资源
    最近更新 更多