【发布时间】:2023-01-13 23:23:47
【问题描述】:
我正在尝试制作一个等待数组被填充然后将其传递给setData() 函数的程序。数据必须在之后呈现。但由于某些原因,尽管数组已满,但反应并未呈现它,正如我从控制台中看到的那样。
import { useEffect, useState } from 'react';
export default function EntitiesRecognized(props) {
const [isLoading, setLoading] = useState(true);
const [data, setData] = useState([]);
const call_razor = async (sentence) => {
try {
return new Promise((resolve, reject) => {
setTimeout(() => {resolve('200' + sentence)}, 2000)
})
} catch (err) {
console.log(err)
}
}
useEffect(() => {
const dataFetch = async () => {
let arr = [];
await props.props.map(async prop => {
console.log(prop)
await call_razor(prop).then(response => arr.push(response))
});
setData(arr);
setLoading(false);
};
dataFetch();
}, []);
return (
<div>
{isLoading
? <h1>Loading</h1>
: data.map((sentence, idx) => {
return <h5 key={idx}>{sentence}<hr/></h5>
})
}
</div>
);
};
它没有显示任何错误,只是一个空白页面。
【问题讨论】:
标签: reactjs arrays async-await rendering