Tengo el siguiente código

axios .get("some.url") .then(res ={amp}gt; { console.log(...res.data); this.setState({ isLoaded: true, assignmentData: {...res.data} }); console.log(this.assignmentData) //this returns undefined }) 

que recupera algunos datos del back-end y los guarda en una variable de estado. Los datos enviados desde el servidor están en el siguiente formato [{id:1, title:"abc"},{id:2,title:"bcd"}] . Sin embargo, el valor de taskData no se actualiza con setState ya que el siguiente console.log devuelve undefined.

¿Cómo puedo actualizar el estado de assignmentData datos con los datos recibidos del servidor?

En primer lugar: this.state.assignmentData se agregará al estado this.state.assignmentData

y en segundo lugar, this.setState(..) es asíncrono.

Si desea ver los datos después de configurarlos, puede hacer algo como esto:

 this.setState({ isLoaded: true, assignmentData: {...res.data} }, () ={amp}gt; { console.log(this.state.assignmentData) }); 

Estás intentando acceder a un valor perteneciente al objeto que no existe. Existe en state . Por lo tanto, accede de la siguiente manera:

 this.state.assignmentData 

Para acceder al valor en el registro de su consola, proporcione a su setState una devolución de llamada ya que es asíncrono:

 this.setState({ isLoaded: true, assignmentData: { ...res.data }, }, () ={amp}gt; { console.log(this.state.assignmentData); }); 

fecha de registro en devolución de llamada asincrónica de setState porque setState es asincrónico

 axios .get("some.url") .then(res ={amp}gt; { console.log(...res.data); this.setState({ isLoaded: true, assignmentData: {...res.data} },() ={amp}gt; console.log(this.state.assignmentData) ); }) 

Consola en devolución de llamada de setState porque es asíncrono

  axios .get("some.url") .then(res ={amp}gt; { console.log(...res.data); this.setState({ isLoaded: true, assignmentData: {...res.data} },()={amp}gt;console.log(this.state.assignmentData)); }) 

o consola dentro de render() obtendrá un estado actualizado.

prueba esto

 axios.get("some.url") .then(async(res) ={amp}gt; { console.log(...res.data); await this.setState({ isLoaded: true, assignmentData: {...res.data} }); console.log(this.assignmentData); });