Reactjs 中的 setState 不是函数

Mah*_*esh -1 javascript fetch setstate reactjs react-hooks

我是新来的反应,我试图使用 APIfetch和setState状态变量命中 API ,但它抛出错误为

Unhandled Rejection (TypeError): Object(...) is not a function
Run Code Online (Sandbox Code Playgroud)

这是代码-> CodeSandboxLink

import React from "react";
import { useState, useEffect, setState } from "react";
import "./styles.css";

export default function App() {
  const [person, setPerson] = useState([]);
  fetch("https://jsonplaceholder.typicode.com/users")
    .then((response) => {
      return response.json();
    })
    .then((data) => {
      setState(data);
    });
  console.log("dasdasd", person);
  return <div className="App">{JSON.stringify(person)}</div>;
}
Run Code Online (Sandbox Code Playgroud)

请建议我哪里做错了。

Mah*_*ghi 5

import React from "react";
import { useState, useEffect } from "react";
import "./styles.css";

export default function App() {
  const [person, setPerson] = useState([]);
  useEffect(() => {
    fetch("https://jsonplaceholder.typicode.com/users")
      .then((response) => {
        return response.json();
      })
      .then((data) => {
        setPerson(data); // You Need this For set Person to `state person`
      });
  }, []);
  console.log("dasdasd", person);
  return <div className="App">{JSON.stringify(person)}</div>;
}
Run Code Online (Sandbox Code Playgroud)

API 使用状态:https ://reactjs.org/docs/hooks-state.html

API 使用效果:https ://reactjs.org/docs/hooks-effect.html

  • 您已将获取代码放入组件的主体中,因此它会在每次渲染时发生。您想什么时候取?如果是组件挂载的时候,就放到useEffect里面 (2认同)