Este problema solo ocurre cuando ejecuto mi aplicación React/Express en modo de desarrollo a través de un proxy Webpack. Básicamente, estoy buscando publicar algunos datos y recuperar algunos datos de mi servidor Express en /post. La solicitud se realiza correctamente con una respuesta 200.
No tiene ningún problema al pasar por la función setState , pero si imprimo el estado después, sigue siendo nulo a pesar de que lo configuro como una cadena válida. Como tal, los datos que busco mostrar en la pantalla cuando se llama nunca se muestran. Como se puede ver en la foto adjunta, los datos son todos válidos, pero el estado termina siendo 0.
Todo funciona correctamente si lo construyo antes de ejecutarlo y no obtengo la respuesta a través de un proxy.
Aquí está el repositorio completo y el componente relevante:
// First of all, I use state with a object as follows. let [returnQuery, setReturnQuery] = React.useState({ price: null, connections: null, leaves: null, returns: null, link: null }) // Following I fetch from my express server. async function postData() { const response = await fetch('/search', { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(props.searchState) }) return response.json(); } // After this I set my state as this return value postData().then((data) => { console.log(`data returned ${data.link}`) setReturnQuery({ price: data.price, connections: data.connections, leaves: data.leaves, returns: data.returns, link: data.link }) setTimeout(() => console.log(returnQuery), 5000) })