1

我有一个 React-Native Android 应用程序,我开始将一些远程 Api 数据提取到我的应用程序中。我想将 RxJS 与超级代理一起使用(fetch() 在我的代码中不起作用),而不是将其分发到我的组件视图中。

现在这是我的 ApiHandler 类中的超级代理 POST 方法,我在其中传递用户名和密码并获取令牌:

tokenPOST: function ( email, password, props, navigator ) {
    rxRequest (
        request
            .post(BASE_URL + 'tokens')
            .type('json')
            .send({
                email:    email,
                password: password
            })
    )
        .doOnNext(function ( res ) {
            notifyMessage (res.token)
        })
        .subscribe(function ( res ) {
                var token = JSON.parse(res.text).token; // working

                navigator.replace({
                    id:   'MainController',
                    // maybe pass props with token here?!
                });
            },
            function ( err ) {
                notifyMessage ("Please check credentials again!")
            })
},

这是我的 RxJS 可观察代码:

var rxRequest = Rx.Observable.fromSuperagent = function ( request ) {
  return Rx.Observable.create(observer => {
    request.end(( err, res ) => {
        if (err) {
            observer.onError(err)
        } else {
            observer.onNext(res);
        }
        observer.onCompleted();
    })
  });
};

现在我如何实际将我得到的令牌结果/响应传递给我的组件视图?我是 react-native 和 RxJS 的新手,实际上我是整个 JavaScript/ReactJS 方面的新手,所以我非常感谢它获得帮助。

4

0 回答 0