Call method DataTable(config); //Semuanya baik
Kemudian muatkan JSON, function fetchers(apiUrl) //semuanya baik
Kemudian cetak JSON yang saya terima dalam konsol //semuanya baik
Kemudian saya cuba menggunakan Array.prototype.map() (sebelum itu saya menggunakan data setempat) dan kemudian saya mendapat ralat ini....
Tidak ditangkap (dalam janji) TypeError: datas.map bukan fungsi
DataTable(config); const config = { //ok parent: '#usersTable', apiUrl: "https://mock-api.shpp.me/mmykola/users" }; async function fetchUsers(apiUrl) { //ok const response = await fetch(apiUrl); return await response.json(); } sync function DataTable(config) { let newData = await fetchUsers(config.apiUrl); //ok console.log(newData["data"]); //ok newData.map((value) => {/*work with JSON create code for new table...../*}); //error here }
Sebelum ini, saya menggunakan data tempatan dan mencipta jadual daripadanya, semuanya baik-baik saja, tetapi dalam JSON yang dimuat turun, ini berlaku.
Saya berbesar hati untuk mendapatkan cadangan tentang ralat ini, bukan sekadar penyelesaian,
Baca juga nasihat tentang json
对象没有function
jenis sifat
Dan cuba hancurkan objek json seperti ini
const {data} = newData; console.log(data); // 一切正常,简单的对象数组 data.map((value) => {/*work with JSON...../*});//错误与上述相同
Jadi daripada respons api, anda tidak mempunyai tatasusunan, tetapi objek.
Jadi anda perlu mengulangi semua sifat dalam objek data. Anda boleh menggunakan Object.values() untuk menukar semua nilai hartanah kepada tatasusunan dan kemudian menggunakan kaedah peta.