我有一个异步功能,基本上从后端获取一个列表,我会创建一个FE上的html列表与这些元素。为此,我想在这张清单上画一张Map。问题是,由于它是一个异步函数的结果,似乎我需要添加一些细节。
根据我的搜索,我应该做一些类似的事情:
const listItems = await Promises.all( podcastList.map(
(podcast) =>{
<ListItem value = {podcast} />}
));
但是,我得到了一个错误:
Compiled with problems:X
ERROR in ./src/App.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
SyntaxError: Unexpected reserved word 'await'. (21:20)
其余功能包括:
function ListItem(props) {
return <li>{props.value}</li>;
}
async function podcast_list() {
let podcast_list;
const headers = { 'Content-Type': 'application/json' };
const res = await fetch('/list_podcasts', { method: 'GET',headers});
podcast_list = await res.json();
console.log(podcast_list);
return podcast_list
}
podcastList = podcast_list();
2条答案
按热度按时间bvn4nwqk1#
不能从组件异步返回JSX。将原始数据从JSX中分离出来--
await
原始数据的请求,将状态设置为在数据到达时触发重现器,然后构建JSX UI。在JavaScript中使用
camelCase
,而不是snake_case
,并且不要忘记向列表项添加唯一的key
属性。ldfqzlk82#
在呈现JSX元素时,您不需要等待Map。只要: