首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析承诺阵列

解析承诺阵列
EN

Stack Overflow用户
提问于 2020-01-14 09:17:51
回答 3查看 78关注 0票数 0

我使用ReactJSaxios来获取数据客户。

反应:16.5.2

axios:0.18.0

我有一个带有构造函数的类:

代码语言:javascript
运行
复制
constructor(props) {
  super(props);
  this.state = {
    reactTable: reactTableData(),
    reactBootstrapTable: reactBootstrapTableData(),
    dataCustomer: customerData(),
};

方法customerData()

代码语言:javascript
运行
复制
export function customerData(){
  // axios get  
  return axios.get("my/url")
  .then(res => {
    let data = res.data.data;
    console.log(data);
    return data
  })
  .catch(err => {
    console.log(err);
  })
}

当我是console.log(this.state);时,我得到了承诺的数据如下:

我还是ReactJS的新手,我希望你能帮我,

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-14 09:22:19

这是非常正常的,因为您从customerData函数中返回了一个承诺。我会这样解决你的问题:

代码语言:javascript
运行
复制
constructor(props) {
  super(props);
  this.state = {
    reactTable: reactTableData(),
    reactBootstrapTable: reactBootstrapTableData(),
    dataCustomer: [],
  }
  this.initCustomerData()
}

async initCustomerData() {
  this.setState({
    customerData: await customerData()
  })
}
票数 2
EN

Stack Overflow用户

发布于 2020-01-14 09:21:01

您的customerData只会返回需要解决的承诺。这一承诺正被设定在dataCustomer中。

您可以做的是,在另一个方法中调用方法customerData,该方法可以从constructor或任何其他生命周期方法中触发。解析承诺,然后调用setState方法来设置所需的值。

票数 0
EN

Stack Overflow用户

发布于 2020-01-14 09:27:22

代码语言:javascript
运行
复制
constructor(props) {
  super(props);
  this.state = {
    reactTable: reactTableData(),
    reactBootstrapTable: reactBootstrapTableData(),
  };

  this.initCustomerData();
}

initCustomerData = () => {
  customerData().then((data) => {
   this.setState({ dataCustomer: data })
  });
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59730685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档