【发布时间】:2021-07-02 07:23:48
【问题描述】:
我正在尝试使用 api 来获取我正在使用 fetch 的国家/地区列表,在获得列表后我需要在 UI 中将国家/地区列表显示为选项,目前我能够将其打印到控制台但在选项上它没有反映请检查我做错了什么以及如何解决,
const [contry, setcontry] = useState([])
useEffect(() => {
const urlp = "https://covid19.mathdro.id/api/countries";
fetch(urlp)
.then(response => {
if (response.status === 200) {
return response.json();
} else {
throw new Error('Something went wrong on api server!');
}
})
.then(data => {
// console.log(data.countries)
const lp = data.countries
// console.log(lp);
setcontry(lp)
}).catch(error => {
console.error(error);
});
}, [])
<div class="form-group">
<label for="sel1">Select list:</label>
<select class="form-control" id="sel1">
<option>Global</option>
<option>Global1</option>
{contry.map((x) => { console.log(x.name);
<option value={x.name}>{x.name}</option>
})}
【问题讨论】:
-
你不是
returning 来自.map()回调的 -
omg 没注意到,谢谢你要把我的头发拉出来
-
这是一个常见的错误。在进行故障排除时,会添加
console.log()以测试内容。没有意识到这会破坏隐含的return。每当您向箭头函数添加另一个语句时,请始终添加return关键字。
标签: javascript reactjs react-hooks