Estoy tratando de obtener datos de Api en línea: https://api.randomuser.me/ obtiene datos aleatorios cada vez.
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;mostrar {usuario} está cambiando cada segundo, pero quiero buscar solo una vez, no cada segundo
Debe usar useEffect, usando corchetes vacíos como segundo parámetro para obtener solo una vez:
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;