从请求中反应本机传递响应

时间:2016-02-27 16:52:55

标签: reactjs react-native

我有一个主要课程

class test extends Component

我创建了一个用于呈现登录页面的组件

var PageLogin = React.createClass({

所以在我render的{​​{1}}方法中我可以做

test

此登录类使用触发return ( <View> <PageLogin></PageLogin> </View> ) 组件的login方法的表单。 PageLogin方法使用简单的login将数据发布到服务器。

fetch

所以从表单提交按钮我做

login: function (values) { AsyncStorage.getItem('@test:app_access_token', (error, token) => { fetch(Config.BASE_URI + Config.LOGIN_URI, {//omitted}) .then((response) => response.json()) .then((responseData) => { return responseData; }) .done(); }); }, 但是当我调试var response = this.login(values);时,它是response

1 个答案:

答案 0 :(得分:3)

您的登录请求会触发异步请求,因此您无法使用var response = this.login(values);

处理响应

尝试将您的代码更改为:

login: function (values) {
  return new Promise((resolve) => {
    AsyncStorage.getItem('@test:app_access_token', (error, token) => {
    fetch(Config.BASE_URI + Config.LOGIN_URI, {//omitted})
    .then((response) => response.json())
    .then((responseData) => {
        resolve(responseData);
      });
    });
  });
},

this.login(values).then((res)=>{
  var response = res;
});