<分区>
我有以下代码,我在其中进行 REST 调用并将结果分配给变量。
然后我使用结果映射并创建带有 Prop 的组件。
但目前它会抛出一个错误,因为列表的值是未定义的。
我相信这是因为当我尝试映射时列表的值尚未设置,因为 axios 异步调用尚未完成。
因此有 2 个查询。
我应该如何使用响应值。我将它分配给变量“列表”的方法是正确的还是应该以不同的方式完成?
如何等待列表被填充然后映射到它?
您可以通过查看以下端点来了解 response.data 的外观:https://sampledata.free.beeceptor.com/data1
示例响应数据:
[
{
"word": "Word of the Day",
"benevolent": "be nev o lent",
"adjective": "adjective",
"quote": "well meaning and kindly.<br/>a benevolent smile",
"learn": "LEARN MORE"
},
{
"word": "Word of the Day",
"benevolent": "be nev o lent",
"adjective": "adjective",
"quote": "well meaning and kindly.<br/>a benevolent smile",
"learn": "LEARN MORE"
}
]
客户端代码:
const App = () => {
// const cardData = useSelector(state => state.cardData)
let list;
useEffect(() => {
axios.get('https://sampledata.free.beeceptor.com/data1')
.then(response => {
list = response.data;
list.forEach(l => console.log(l))
})
.catch(error => {
console.log(error)
})
}, [])
return (
<>
<ButtonAppBar/>
<div className='container'>
<div className='row'>
{
list.map((data) => {
const {word, bene, adj, well, learn} = data;
return (
<div className='col-lg-3 col-md-6 format'>
<SimpleCard word={word} bene={bene} adj={adj} well={well} learn={learn} />
</div>
)
})
}
</div>
</div>
</>
);
}
export default App;