【问题标题】:cannot call .next on Observables不能在 Observables 上调用 .next
【发布时间】:2018-02-26 14:38:48
【问题描述】:

我正在使用注射剂在两个同级组件之间共享数据。在我的注射剂中,我正在使用这样的可观察对象:

@Injectable()
export class DatasService { 
    message: Observable<string> = new Observable<string>();
    changeMessage(){
        this.message.next('Arpita'); //Property next doesn't exist
    }

    changeMessage2(){
        this.message.next('Ankan');
    }
}

但是当我使用 Subject 代替 Observable 时,它​​可以正常工作。我想使用 Observable 而不是 Subject,有可能吗? 我是响应式编程的新手,我很困惑。

【问题讨论】:

  • “我想使用 Observable 而不是 Subject” - 为什么?!
  • @jonrsharpe 很好,我明白了为什么我现在得到 dv
  • 因为当我使用主题时,我无法设置默认值。我知道,我可以为此使用 BehaviorSubject,但由于是响应式新手,我想暂时坚持使用 observables
  • 我只是想知道在不使用主题的情况下是否有任何解决方法
  • 所以你想使用一个可观察对象,因为你不能为一个主题设置一个默认值,除非你已经知道你可以创建一个具有默认值的主题?您的问题非常令人困惑:如果您可以使用 observable 作为主题 为什么该主题会存在

标签: angular typescript observable subject-observer


【解决方案1】:

使用全局变量而不是可注入的。这样您就可以在整个项目中访问它们。 1.在DTO中创建一个属性。 2.导入您要使用的组件。 3.在构造函数的参数中创建该类型的变量。 4.使用该变量访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多