React - 状态挂钩图不是函数

tra*_*ada 4 reactjs react-hooks react-state

我知道有类似的问题,但我无法找出错误发生的原因。Div 显示,但随后应用程序崩溃(好像是长度问题)

代码类似于我找到的示例,比如这个沙箱

我究竟做错了什么?

这是组件:

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
Run Code Online (Sandbox Code Playgroud)

这是 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
}
Run Code Online (Sandbox Code Playgroud)

错误:

在此处输入图片说明

Pri*_*Das 5

setPlanetas({ Planetas }) 在这一行中,您将状态设置为具有planetas属性的对象,而您需要执行以下操作setPlanetas(planetas)