【发布时间】:2020-11-01 23:23:17
【问题描述】:
我正在尝试使用我传递的 prop 渲染一个调用 api 的组件,但我有这个错误:错误:对象作为 React 子级无效(找到:[object Promise])。如果您打算渲染一组子项,请改用数组。
还有一些说它无法读取 null 的属性映射,这是我的代码
import React, { useEffect } from "react";
const GetLeagues = async (country) => {
const url = `https://www.thesportsdb.com/api/v1/json/1/search_all_leagues.php?c=${country}&s=Soccer`;
const res = await fetch(url);
const { countrys } = await res.json();
return (
<div>
<ul>
{countrys.map((country, i) => {
return <li key={i}>{country.strLeague}</li>;
})}
</ul>
</div>
);
};
const Leagues = () => {
useEffect(() => {
GetLeagues();
}, []);
return (
<div>
<GetLeagues country={"Spain"} />
</div>
);
};
export default Leagues;
【问题讨论】:
-
一个函数组件永远不能通过
async function,因为在渲染时渲染引擎想知道在调用的那一刻要渲染什么。async function总是返回一个 Promise 并且 Promise 不能被渲染,因为在 Promise 解决之前该值不可用。
标签: javascript reactjs jsx