Aunque el clientToken del cliente se ha definido y se le ha asignado un valor, muestra propiedades indefinidas, ¿por qué?
La llamada API ha funcionado bien, la URL está bien, pero aún muestra este error, ¿alguien puede ayudarme con esto?
A continuación se muestra el detalle del error.
if (info && info.error) { 26 | setInfo({ ...info, error: info.error }); 27 | } else { > 28 | const clientToken = info.clientToken; | ^ 29 | setInfo({ clientToken }); 30 | } 31 | });El objeto getToken está debajo.
const getToken = (userId, token) => { getmeToken(userId, token).then(info => { // console.log("INFORMATION", info); if (info && info.error) { setInfo({ ...info, error: info.error }); } else { const clientToken = info.clientToken; setInfo({ clientToken }); } }); };componente getmeToken a continuación.
export const getmeToken = (userId, token) => { return fetch(` ${API}/payment/gettoken/${userId}`, { method: "GET", headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: `Bearer ${token}` } }).then(response => { return response.json(); }) .catch(err => console.log(err)) }Puede alguien ayudarme con esto?
En su condición else , nunca está comprobando si la info se ha definido y lo más probable es que no lo esté. El problema probablemente no proviene de clientToken en sí, sino de que la info no está undefined o es null .
Puedes intentar hacer algo como esto:
if (info) { if (info.error) { setInfo({ ...info, error: info.error }); } else { const clientToken = info.clientToken; setInfo({ clientToken }); } }