为了账号安全,请及时绑定邮箱和手机立即绑定

在异步调用完成后呈现部分功能组件

在异步调用完成后呈现部分功能组件

心有法竹 2021-06-17 17:16:53
我正在使用带有反应功能组件的 material-ui 并使用其自动完成组件。我自定义了它,每当我更改输入字段中的文本时,我希望该组件呈现新的搜索结果。callAPI("xyz")我在操作中调用 API 并使用 xyz 参数,我正在从这个功能组件调用 dispatch 方法。这里的问题是,当组件进行调用时,它应该等待 API 响应然后呈现结果,但它得到了一个未解决的承诺,所以它无法呈现。<Paper square>    {callAPI("xyz").results.map(        result => console.log(result);    )}</Paper>由于结果是一个未解决的承诺,它将无法映射。我需要某种方法来仅在数据可用时调用地图,或者在数据存在之前显示一些文本,然后在获取数据后进行更改。任何纠正此代码的建议都将非常有帮助。
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

处理这个问题的最简单方法是使用三元表达式,也是在生命周期方法中调用 API 请求然后将结果保存在本地状态的最佳实践。


componentDidMount() {

    callAPI("xyz").results.map(

        result => this.setState(result);


}


<Paper square>

    {this.state.results ?

      this.state.results.map(

        result => console.log(result);

      : <p> Loading... </p>

    )}

</Paper>


查看完整回答
反对 回复 2021-06-18
  • 2 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号