繁体   English   中英

等到Promise解决后将其结果传递给React return语句

[英]Wait until a Promise is resolved to pass its result to a React return statement

我在这里有这个对象组件,是从本地服务器上从中获取数据的,我需要等到数据下载后,再将信息传递给组件的return语句。 我尝试了很多事情,但似乎没有用。 这是我的最后尝试:

import React, { Component } from 'react';
import ReviewItem from './review_item.js'

const ReviewList = async (props) => {

  const form = {
       elementPlayground:"2019A.Kagan",
       elementId:props.element_id,
       type:"ShowReviews",
       attributes: { page:0, size:5 }
  }

  const url = `http://localhost:8083/playground/activities/2019A.Kagan/${props.playground}`

  const getItems = () => {
    return fetch(url, {
                method: "POST",
                mode: "cors",
                headers: {
                  "Content-Type": "application/json",
                },
                body: JSON.stringify(form),
              })
              .then(response => response.json())
              .then(json => ((json['attributes'])['reviews']).map(review => <ReviewItem key={json['id']} review={review} />));
  }

    const items = await getItems();
    console.log(items);
    return (
      <ul className="col-md-4 list-group">
      {items}
      </ul>
    )
}

export default ReviewList;

我要退回的商品是“商品”,我们将不胜感激!

对此通常仍然很isLoading: true ,但是如果我正在等待显示数据的响应或阻止进一步的子项加载,我通常将state设置为isLoading: true ,然后在成功完成获取时将isLoading: false设置isLoading: false

如果有帮助,就可以这样。

return (
  <ul className="col-md-4 list-group">
  {!this.state.isLoading && {items}}
  </ul>
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM