首页 > 解决方案 > 地图未定义

问题描述

我不断收到地图未定义的错误。由于 regeneratorRuntime 错误,我更改了我的代码,现在我坚持使用这个。任何帮助表示赞赏!

import React, {Component, useEffect, useState} from 'react'
import axios from 'axios'
require("regenerator-runtime/runtime");

const App = () => {
    const [data, setData] = useState({heroes: []});
    useEffect(() => {
         const fetchData = async () => {
             const result = await axios(
                 'https://api.opendota.com/api/heroStats',
             );
             setData(result.data);
         };
        fetchData();
            }, []);
    return(
        <ul>
            {data.heroes.map(item => (
                <li key={item.id}>
                    <a href={item.name}>{item.localized_name}</a>
                </li>
            ))}
        </ul>
    )
};
export default App

标签: javascriptreactjsaxios

解决方案


像这样定义

setData({...data, heroes:result.data});

因为你已经将英雄数组变量传递给状态所以传播变量然后设置数据

       useEffect(() => {
         const fetchData = async () => {
             const result = await axios(
                 'https://api.opendota.com/api/heroStats',
             );
           setData({...data, heroes:result.data});
         };
        fetchData();
       }, []);

推荐阅读