嘿,當我console.log(typeof(variable)與console.log(variable).
在控制臺中,變數顯然是一個物件陣列,但是當我說它是console.log一個. 我正在從 API 中獲取資料,然后嘗試將資料呈現為反應。我認為我無法通過資料,因為它認為它是一個物件。
任何幫助將不勝感激,謝謝!typeofobjectmap

下面是我的 RenderDrink 組件
import React from 'react'
function RenderDrinks(props) {
console.log(typeof(props.data))
console.log(props.data)
return (
props.data && props.data.map(drink => {
<>
<h2>{drink.strDrink}</h2>
<p>{drink.strGlass}</p>
<p>{drink.strImageSource}</p>
<p>{drink.strInstructions}</p>
{/* <p>{drink.str}</p>
<p>{drink.str}</p> */}
</>
})
)
}
export default RenderDrinks
下面是我的 ApiFetch 組件
import React, {useState, useEffect} from 'react'
import axios from 'axios'
import RenderDrinks from '../RenderDrinks';
const FetchApi = () => {
const [data, setData] = useState([]);
const fetchDrinks = async () => {
await axios.get('https://www.thecocktaildb.com/api/json/v2/9973533/popular.php')
.then((res) => {
const allDrinks = res.data.drinks
setData(allDrinks)
console.log(typeof(data))
})
.catch(error => console.error(`Error: ${error}`))
}
useEffect(() => {
fetchDrinks()
}, [])
return (
<>
<RenderDrinks data={data} />
</>
)
}
export default FetchApi
uj5u.com熱心網友回復:
那是因為array是型別object
如果要測驗陣列的變數,可以使用:
if (data.constructor === Array)
console.log('it's an array');
您還可以使用 isArray() 來檢查它是否是這樣的陣列:
if(typeof data === 'object' &&
Array.isArray(data)) {
//Its an array
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/478926.html
標籤:javascript 数组 反应 javascript 对象 类型
