我正在嘗試從端點獲取資訊并將其分配給區域變數。問題是資訊被成功獲取,當我輸入 console.log(resp.data) 時,它被列印出來,所以我將它分配給院系,但在下面的行中,院系是一個空陣列。我嘗試了 async/await -> 我將 showOptions 函式定義為 async 并等待 facultiesService.getAllFaculties(),但問題沒有解決,還出現了一些其他錯誤。我該如何解決這個問題?
const showOptions = () => {
let faculties = [];
facultiesService.getAllFaculties()
.then(async (resp) => {
faculties = await resp.data;
})
.catch(e => console.log(e));
console.log(faculties)
return faculties.map(faculty => {
return <option
key={faculty.id}
value={faculty.id}
>{faculty.name}
</option>
});
}
const showFacultySelect = () => {
return (
<Form.Select aria-label="Default select example">
{showOptions()}
</Form.Select>
)
}
uj5u.com熱心網友回復:
您以錯誤的方式使用 async/await。它們用于順序代碼而不是回呼。你應該做這樣的事情:
const showOptions = async () => {
let result = await facultiesService.getAllFaculties();
let faculties = await resp.data;
console.log(faculties)
return faculties.map(faculty => {
return <option
key={faculty.id}
value={faculty.id}
>{faculty.name}
</option>
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494484.html
上一篇:如何在后臺運行異步協程?
下一篇:切換到C中的新呼叫堆疊?
