从函数传递对象

时间:2018-08-27 13:20:06

标签: reactjs react-native

我将能够通过listTicket调用getTicket来检索数据

listTicket:

listTicket()
   {
     objectTicket = this.getTicket();
     objectTicket.map((userData)=>{
      alert(userData.id)
    })
}

getTicket代码:

async getTicket () {
      return await fetch('url', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({
            uid: '1',
            type: '0'
          })
      })
        .then((response) => {return response.json()})
        .then((responseJson) => {
          return responseJson;
        })
        .catch((error) => {
          alert(error);
        });
    }

我收到此错误:

  

typeerror objectTicket.map不是函数

4 个答案:

答案 0 :(得分:2)

从getTicket方法获得Promise,因此您应该订阅它:

listTicket() {
     objectTicket = this.getTicket();
     objectTicket.then((res) => { 
       res.map((userData)=> {
          alert(userData.id)
       })
     })
}

答案 1 :(得分:1)

这里的问题是getTicket()是一个返回Promise的函数,而map是在数组上定义的。

答案 2 :(得分:1)

getTicket返回Promise listTicket方法时,其方法也应为async

async listTicket() {
   objectTicket = await this.getTicket();
   objectTicket.map((userData)=> {
      alert(userData.id)
   });
}

答案 3 :(得分:0)

异步函数返回承诺,并使用该函数的返回值进行解析。

因此,当您调用listTicket函数时。 listTicket函数返回的是Promise对象以及返回值{VIEW},这就是问题所在。

要解决此问题,您应该将 objectTicket 值设置为状态变量,然后遍历状态变量。