【发布时间】:2019-07-12 05:25:44
【问题描述】:
我知道有类似的问题,但我无法找出错误发生的原因。 Div 显示,但随后应用程序崩溃(好像是一些长度问题)
代码和我找到的例子类似,比如sandbox
我做错了什么?
这是组件:
import React, { useState, useEffect } from 'react'
/* import Button from '../Button' */
import { getPlanets } from '../../services/index'
import './Planetas.css'
const Planetas = () => {
const [planetas, setPlanetas] = useState([]);
useEffect(() => {
const fetchPlanetas = async () => {
const planetas = await getPlanets()
setPlanetas({ planetas })
};
fetchPlanetas()
}, []);
return (
<div className="planetas">
{
planetas.map((planeta, key) => {
return <div key={key}>{planeta.name}</div>
})
}
</div>
)
}
export default Planetas
这是 api 服务:
import axios from 'axios'
const BASE_URL = 'https://swapi.co/api/planets'
export const getPlanets = async() => {
const planets = await axios.get(`${BASE_URL}`).catch((e) => {
console.error(e);
})
console.log('resp\n')
console.log(planets.data.results)
return planets.data.results
}
错误:
【问题讨论】:
-
map是数组函数而不是object。我认为你的planetas是对象。 -
正在从其他 api 获取您的 planetas,如果是,则使用 {planetas && planetas.map((planeta, key) => { 来检查并等到你得到行星的价值
标签: reactjs react-hooks react-state