如何只取一次(取完一次就停止取数据)

How to fetch just one time ( stop fetching data after one is fetched )

我正在尝试从网上获取数据 Api - https://api.randomuser.me/ 它每次都获取随机数据。

import { useState } from 'react';
import './App.css';

function App() {
  var [user, setUser] = useState()
  fetch('https://api.randomuser.me/')
   .then(res => {return res.json()})
   .then(data => setUser(data.results[0].gender)) 

// if i write: .then(data => console.log(data.results[0].gender)) it console log 2 times, i want to fetch data just one time no 2 times

  return (
    <div className="App">
      {user}
    </div>
  );
}

export default App;

显示{user}每秒都在变化,但我只想获取一次而不是每秒

你需要使用useEffect,使用一个空方括号作为第二个参数只获取一次:

import { useState, useEffect } from 'react';
import './App.css';

function App() {
  var [user, setUser] = useState()
  
  useEffect(()=>{
    fetch('https://api.randomuser.me/')
    .then(res => {return res.json()})
    .then(data => setUser(data.results[0].gender)) 
  },[])

  return (
    <div className="App">
      {user}
    </div>
  );
}

export default App;