为了账号安全,请及时绑定邮箱和手机立即绑定

未处理的拒绝(TypeError):respo.json 不是函数

未处理的拒绝(TypeError):respo.json 不是函数

动漫人物 2022-12-08 15:44:50
我是 React 的初学者,遇到了一些问题。遇到问题 Unhandled Rejection (TypeError): respo.json is not a function。import React, { useEffect } from "react";import { useState } from "react";import logo from "./logo.svg";import "./App.css";import axios from "axios";function App() {  const { monster, setMonster } = useState([]);  useEffect(() => {    async function fetchData() {      const respo = await axios.get("https://jsonplaceholder.typicode.com/users");      const resp = await respo.data;      setMonster({ monster: [...resp] });    }    fetchData();  }, [monster]);  return (    <div className="App">      <p>{console.log(monster)}</p>    </div>  );}export default App;
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

//img1.sycdn.imooc.com//6391961e0001969b07420114.jpg

使用 respo.data 代替:


您的响应有一个您需要获取的数据密钥。


import React, { useEffect } from 'react';

import {useState} from 'react';

import logo from './logo.svg';

import './App.css';

import axios from 'axios';


function App() {

  const [monster,setMonster]=useState([]);


  useEffect(()=>{

    async function fetchData() {

     const respo=await axios.get('https://jsonplaceholder.typicode.com/users')

     const resp=await respo.data;

     setMonster({monster:[...respo]});


    }


      fetchData();

},[]);

  return (

    <div className="App">

      <p>{console.log(monster)}</p>

    </div>

  );

}


export default App;

工作代码:https://codesandbox.io/s/elated-platform-1itbi?file =/src/App.js


查看完整回答
反对 回复 2022-12-08
?
九州编程

TA贡献1785条经验 获得超4个赞

您的代码中有两个问题:

  1. const {monster,setMonster}=useState([]);

这应该是:

const [monster,setMonster] = useState([]);
  1. const resp = await respo.data;

这应该是:

const resp = respo.data;

respo.data不是承诺,而是 api 的结果。

笔记:

要更新monster,您必须调用setMonster(resp)notsetMonster({ monster: resp })



查看完整回答
反对 回复 2022-12-08
?
暮色呼如

TA贡献1853条经验 获得超9个赞

只使用 get/then 而不是 async/await 怎么样?


useEffect(()=>{

    axios.get('https://jsonplaceholder.typicode.com/users')

        .then(response => {

            setMonster({

                monster:[...response.data]

            });

        });

    }

},[monster]);


查看完整回答
反对 回复 2022-12-08
  • 3 回答
  • 0 关注
  • 61 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信