reactjs - React - 状态钩图不是函数

标签 reactjs react-hooks react-state

我知道有类似的问题,但我无法找出错误发生的原因。 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
}

错误:

enter image description here

最佳答案

setPlanetas({ Planetas }) 在这一行中,您将状态设置为具有 planetas 的对象属性(property),而不是你需要做 setPlanetas(planetas)

关于reactjs - React - 状态钩图不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57000643/

相关文章:

css - 更改在 React 中多次声明的一个组件的状态 - 更好的做法?

javascript - 如何在多个 <div> 中显示来自 .map 函数的数据

javascript - React 以编程方式调用钩子(Hook)

javascript - React - 检查数组中是否已存在某个值?

reactjs - BrowserRouter Link 重写 onClick 事件

javascript - react useEffect 比较对象

javascript - 错误未定义不是一个对象React Native

reactjs - 由于在它们之前返回,因此无法看到条件渲染

javascript - 如何在 React js 中删除 Web 应用程序 cookie

reactjs - shuffle React 中的奇怪行为