javascript - 不明白为什么我收到'Promise {}'
问题描述
我有一个组件Result
,它接受children
我getQueryResults
通过渲染中的方法运行的道具。getQueryResults
搜索 Swifttype API 以根据用户的查询返回搜索结果对象。
我不明白为什么渲染中的 console.log 会记录我的 Promise 仍处于挂起状态,而getQueryResults
方法定义中的控制台日志会返回响应对象。我无法访问渲染中 console.log 中子道具(例如 this.props.children.headings)的任何属性,而它仍然具有待处理的承诺状态。
class Result extends React.Component {
getQueryResults = (query: any) => {
return Swiftype.search(query)
.then((response) => {
console.log(response); //<----returns actual object
return response;
})
.catch((err) => {
console.error(err);
});
};
render() {
return (
<PasteCard>
<Heading as="h2" variant="heading40">
HEADING HERE
{console.log( this.getQueryResults(this.props.children))} // <-- returns Promise {<pending>}. Why?
</Heading>
<Paragraph>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam dui
tellus, tristique in tincidunt cursus, efficitur at felis. Phasellus
imperdiet, lorem et commodo egestas, arcu.
</Paragraph>
</PasteCard>
);
}
}
我像这样使用 Result 组件
<Result children='hot air balloons' />
解决方案
推荐阅读
- javascript - 当一个组件重新渲染时,它里面的所有变量都重新定义了吗?
- bluetooth-lowenergy - 强制 BLE 广告使用公共 mac 地址
- android - Gradel 同步意外失败
- flutter - Flutter - 一个主页的多个主体
- r - 从报纸网站上抓取图像
- java - 正则表达式单字符用户名验证
- python - Python:__dict__ 显示类对象的类属性,即使 __init__ 内部的行为改变了类属性
- file - Flutter web - 显示应用程序中生成的 pdf 文件。(Uint8List 格式)
- google-oauth - Google My Business API:出现 404 错误
- python - 基于用户配置文件的 Django 管理员过滤