Meteo HTTP呼叫:无法访问数据

时间:2017-12-07 09:43:50

标签: javascript reactjs http object meteor

我遇到了流星的奇怪问题。我尝试使用React-Component中的数据进行HTTP调用。但我无法访问返回的数据。 在服务器上:

'get': function get() {

    try {
      const data = Meteor.http.get('url', {
        params: {
            "api_key": "key",
            "attribute": "attribute"
        }
      }
      return data.data;

    } catch (exception) {
      throw new Meteor.Error('500', exception);
    }
},
客户端上的

:我已经使用withTracker()设置了一个容器,以便我可以在我的react组件中作为道具访问http响应。

export default withTracker(() => {
    var data = [];
    Meteor.call('get', function(error, success) { 
        if (error) { 
            console.log('error', error.reason); 
        } 
        if (success) { 
            data.push(success);
            console.log('success', success); 
        } 
    });

    return {
        data,
    };
})(Component);

我已尝试过所有可能的组合。使用arraysobjects,但都没有成功。使用console.log(data)时,我会在客户端上获得一些数据。但是使用console.log(data[0])返回undefined

我还尝试从服务器'get'方法返回一个对象。使用js Object.assign。但是,在调用console.log(data.name)时,我会在客户端上获得undefined

也许我没有以正确的方式解决它,但我不明白为什么当我尝试访问对象的数据时,这总是会返回undefined

1 个答案:

答案 0 :(得分:0)

解决方法是将Meteor.call放入component method,并在component method中传递另一个callback,因为Meteor.call不支持promisesasync / awaitreference