简体   繁体   English

如何使用 reactjs 中的 map 从 api 获取数据?

[英]How to fetch data from api using map in reactjs?

I have a problem how can I fetch multi-array data from API using map error - TypeError: Cannot read property 'map' of undefined TypeError: map is not a function ( fetch regional data using map ) I have a problem how can I fetch multi-array data from API using map error - TypeError: Cannot read property 'map' of undefined TypeError: map is not a function ( fetch regional data using map )

const [coviddata, setCoviddata] = useState();
useEffect(() => {
    fetch("https://api.rootnet.in/covid19-in/stats/latest")
    .then((res) => res.json())
    .then((codata) => setCoviddata(codata.data))
})

return (
    <>
    <h1>States</h1>
    {
        coviddata.map(
            (covax) => (
                <h3>{covax.regional.loc}</h3>
            )
        )
    }
    </>
)

} }

API: https://api.rootnet.in/covid19-in/stats/latest API: https://api.rootnet.in/covid19-in/stats/latest

Because initial of coviddata is undefined .因为coviddata的初始值是undefined So coviddata.map will show this error.所以coviddata.map会显示这个错误。 coviddata only change to array when api call success.仅当 api 调用成功时, coviddata才会更改为数组。

You just update decalre state with empty array:您只需使用空数组更新贴花 state :

const [coviddata, setCoviddata] = useState([]);

Or you can use optional chaining to check data is not undefined :或者您可以使用optional chaining来检查数据是否undefined

coviddata?.map(...)

The 'data' property you're trying to access from the results is not an array.您尝试从结果中访问的“数据”属性不是数组。 Rather do this.而是这样做。

 const [coviddata, setCoviddata] = useState([]); useEffect(() => { fetch("https://api.rootnet.in/covid19-in/stats/latest").then((res) => res.json()).then((codata) => setCoviddata(codata.data.regional)) }); return ( <> <h1>States</h1> { coviddata.map( (covax, index) => ( <h3 key={index}>{covax.loc}</h3> ) ) } </> )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM