Tengo datos en mi consola cuando trato de registrarlos pero no puedo usarlos.
Mi objeto de datos se parece a:
{_id: '616bf82d16a2951e53f10da4', nombre: 'abd', correo electrónico: 'q@gmail.com', teléfono: '1234567890', trabajo: 'cantante', …}
token de acceso: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxNmJmODJkMTZhMjk1MWU1M2YxMGRhNCIsImlhdCI6MTYzNDYyMDk3MiwiZXhwIjoxNjM1MDUyOTcyfQ.b9NZB-ogrdu_SulT1xJ8h62akejazT1xJ8h62a"
ccontraseña: "$2a$12$BZ17rY63qrq.Fw9wC29A.eabcuAHSY0mXfxSvcpxOFGfUeW4NUkMO"
correo electrónico: "q@gmail.com"
nombre: "abdo"
teléfono: "1234567890"
fichas: (3) [{…}, {…}, {…}]
obra: "cantante"
__v: 3
_id: "616bf82d16a2951e53f10da4"
[[Prototipo]]: Objeto
import "./about.css" import {useHistory} from "react-router-dom" export default function About() { const history=useHistory(); const [userData,setUserData]=useState(); const callAboutPage=async()=>{ try { const res=await fetch("/about",{ method:"GET", headers:{ Accept:"application/json", "Content-Type":"application/json" }, credentials:"include" }) const data=await res.json(); console.log(data); setUserData(data); if(!res.status===200){ const error=new Error (res.error) throw error } } catch (error) { console.log(error) history.push("/login") } } useEffect(() => { callAboutPage(); }, []) return ( <div className="abt-body"> <div className=" d-flex justify-content-center align-items-center about"> Name:{userData.name} <br /> Id:{userData._id} <br /> Email:{userData.email} <br /> Phone:{userData.phone} <br /> Work:{userData.work} </div> <div class="card-footer text-muted d-flex justify-content-center align-items-center"> Designed and Developed by : Harsh Raj Ambastha </div> </div> ) }Puede intentar usar el encadenamiento opcional de Javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
Intente agregar el operador a cada uno de sus campos:
userData?.name userData?._idetc.
Es porque establece el valor inicial como vacío, lo que se interpretará como un valor primitivo. Entonces, cuando se procesa inicialmente, descubre que está tratando de acceder a una propiedad de un valor primitivo que no está allí. Dé el valor inicial como un objeto vacío, ya no arrojará un error aquí. useState({})