使用RxJS捕获React Native上的单击事件

时间:2018-03-07 10:17:09

标签: react-native rxjs

互联网上有很多例子,例如here,它们展示了如何使用RxJS捕获网页中的点击事件。

我测试了这些示例并且它们都运行良好,即使在React.js应用程序中也是如此,但是他们不能使用 React Native 应用程序,因为React Native应用程序没有DOM。

有没有办法在 React Native 应用程序中使用Rx.Observable.fromEvent使用 RxJS 捕获点击事件? (不是React.js)

1 个答案:

答案 0 :(得分:-1)

一个可能的解决方案是使用Subject在OnPress函数中执行此操作,并在ComponentDidMount函数上进行订阅,这是一个快速示例(也可用here)。希望对您有所帮助。

import { Subject } from 'rxjs';

class TestPage extends React.Component {
  constructor(props) {
    super(props);
    this.subject = new Subject();
  }

  componentDidMount(){
     this.subject.subscribe(data => console.log(data), err => console.error(err))
  }

  onPress =(item) => {
    this.subject.next(item)
  }

  render() {
    return (<View>
        <Button onPress={this.onPress} />
      </View>)
  }
}