当前位置: 首页 > 知识库问答 >
问题:

如何将promise返回的值添加到React中的动态数据列表中?

汪学真
2023-03-14

我正在转换一个建在Wordpress上的大型网站来回应,我的问题是:

  • 在ComponentDidMount上,我将调用一个API并获得一长串ID列表,这些ID将添加到我的状态中。ID对应于需要动态呈现的人员。
  • 所以现在我将状态设置为ID数组,我将对其进行映射以返回一些JSX,

即arrayids.map(id=>{return img src={async value====img URL returned from promise}/>

    null
import Async from 'react-promise'

const imgPromise = axios.get('someAPI/' + imageID);

<Async 
  promise={imgPromise} 
  then={ ( resolvedData ) => <img src={ resolvedData.imgURL } /> } 
/>

共有1个答案

史修明
2023-03-14

看来您应该重新考虑如何在React中使用state的假设,因为您绝对应该在这里使用它。“Ican't use state b因为我不知道需要呈现多少图像ID”<=这显然是假的,因为在您的文章中,您提到了用从API调用获得的ID列表更新state。因此,您已经在更新state时使用了一个异步操作返回的值...您认为异步获取URL与最初获取ID有何区别?

其中一种方法是:

顶层组件安装。它获取API以获取ID。呈现完成,但正在等待API调用。

this.state = {
    items: []
}
this.state = {
    items: [
        {id: "foo"},
        {id: "bar"},
        {id: "baz"}...
    ]
}
this.state = {
    items: [
        {id: "foo"},
        {id: "bar", url: "http://bar.com"},
        {id: "baz"}...
    ]
}
this.state = {
    items: [
        {id: "foo", url: "http://foo.com"},
        {id: "bar", url: "http://bar.com"},
        {id: "baz", url: "http://baz.com"}...
    ]
}
render() {
    return (
        <div>
            {
                this.state.items.map((ea, i) => {
                    return <img key=`img${i}` src={ea.url ? ea.url : "placeholder.jpg"} />
                }
            }
        </div>
    );
}
 类似资料:
  • 图像中的数据帧 我想将年份(2020年)和上一个第五年(2016年)之间的所有值相加,其中输入PARTNO=输入 因此,对于输入值,我应该得到4 6 2 3 2(2016 2017 2019 2020),即17 请给我一些密码

  • 问题内容: 我有一个对快速服务器(我自己的服务器)进行反应的组件。服务器用于在上签署交易。一旦将交易包含在一个块中,就将一个对象返回给服务器。看起来像这样: 我需要将存入上述组件的状态。我已经搜索了2天,可能丢失了一些非常明显的内容。 这是服务器端代码还是客户端代码?由于与之交谈的固有时间延迟,我是否需要学习和使用异步? 任何帮助表示赞赏! 谢谢 问题答案: 要发出发布请求,您必须通过compon

  • 我需要帮助将这些值动态添加到mysql数据库的下拉列表中。 工作流程: 在我的jsp页面中, 1.国家名称是servlet的会话属性 2.Sate是一个自动完成的文本框 3.District是下拉列表。 根据国家名称,州文本框将通过自动完成填充,地区名称是一个下拉列表,其中地区名称应动态添加到下拉列表中 问题: 我需要根据位置和州将地区名称的值添加到下拉列表中。 我的数据库查询是“从位置列表中选择

  • 我从消防队拿到了我的文件。目前我在列表中有以下内容: 然后,在下面的方法中,我转换这个列表以放入一个具有所需格式的地图。

  • 假设我有一个数据框 和列名称列表 如何将新列添加到以零为值的数据帧中?

  • 问题内容: 我试图获取随我的sql查询返回的序列号列。我需要将它放在SELECT语句中,因为我想将此查询嵌套在另一个查询中,然后将之前生成的列用于进一步的计算。 我到处都看过,找不到任何示例。 具有以下效果的东西: 这应该生成如下内容: 请注意,some_column和some_other_column是my_awesome_table中实际存在的列,而row_number仅针对此查询即时生成。