用RxJS反应原生

col*_*fet 6 android ios rxjs react-native

我正在使用React Native和RxJS,直到现在,只要我订阅了一个我一直在做的观察:

observable.subscribe(() => {
     this.setState({ loading: true });
}.bind(this));
Run Code Online (Sandbox Code Playgroud)

但是自从我升级到React Native 0.16.0后,无论我在使用ES2015箭头符号声明的内联函数上执行bind(this),React Native都会将其作为错误进行选择.但是,当我将箭头符号更改回ES5常规函数表示法时,如下所示:

observable.subscribe(function() => {
    this.setState({ loading: true });
}.bind(this));
Run Code Online (Sandbox Code Playgroud)

错误似乎消失了.

这里发生了什么?

小智 9

当您使用箭头功能时,您已经将其绑定到该特定功能.所以:

() => {} === function() {}.bind(this)
Run Code Online (Sandbox Code Playgroud)