将对象函数与flyd.combine一起使用时,上下文似乎丢失了

时间:2019-05-03 13:32:57

标签: reactjs

我已经使用reactJS工作了几周,但是我对React和Flyd还是比较陌生。 实际上,我尝试将这样的飞行流合并:

    const informations$ = flyd.combine(Test.fun2, [lang$, args$])

其中lang $和args $是另外两个流

进入测试文件,我有这个:

class TestClass {
  private fun1() {
    console.log("fun1")
  }
  private fun2(lang$, brand$, state$) {
    console.log("fun2")
    this.fun1()
  }
}

export const Test = new TestClass()

这不起作用。我的控制台仅显示“ fun2”,而从不打印“ fun1”。似乎this.fun1是未定义的。

但是,我可以将其与以下内容一起使用:

class TestClass {
  private fun1() {
    console.log("fun1")
  }
  private fun2() {
    console.log("fun2")
    this.fun1()
  }
  public fetchData = (lang$, brand$, state$) => {
    this.fun2(lang$, brand$, state$)
  }
}

export const Test = new TestClass()

似乎箭头功能允许我将上下文保留为类。由于我是javascript新手,所以我不明白为什么通过flyd调用时,这个(上下文)不在TestClass范围内

(但是,如果没有飞起来的话,双向都可以正常工作)

有人可以给我一些关于如何实现飞行和javascript上下文的见解吗?

非常感谢。

0 个答案:

没有答案