react-native-meteor Meteor.collection(' xxx')。findOne()返回undefined,如何进行回调

时间:2017-07-21 08:37:27

标签: javascript react-native react-native-meteor

当我试图获取数据时,我得到了不确定的信息,但是在再次调用该方法后的一秒钟内,我得到了我想要的东西。我的理解,我只是等待回应,当我试图返回一个物体时,我什么都没有,因为它正在向我走来。 .findOne()没有回调,在这种情况下我能做些什么?

  handleLogin = () => {
      Meteor.loginWithPassword(this.state.loginField,this.state.passwordField,(error)=>{
          if (!error) {
          Meteor.subscribe('xxx')
            let data = Meteor.collection('xxxy').findOne();
            console.log(data);
          }
      }
  }

1 个答案:

答案 0 :(得分:0)

您可能需要查看documentation的此部分。它说

  

当服务器将订阅标记为就绪时,将调用onReady回调而不带参数。

基本上Meteor.subscribe()允许您包含在订阅准备好时调用的回调。它可能看起来像下面。

Meteor.subscribe('xxx', function () {
  const data = Meteor.collection('xxxy').findOne()
  console.log(data)
})