Tengo un problema al actualizar una variable dentro el state de react.
import React from 'react'
import ReactDOM from 'react-dom'
import axios from 'axios'
class Personas extends React.Component {
constructor(props) {
super(props)
//Creo mi variable state
this.state = {
datos: []
}
}
//hago una funcion asincrona para hacer la peticion de mi nuevo dato json
async update(event) {
const self = this
try {
//con axios hago la petición para obtener mi nuevos valores
await axios.post('./getPersonsConnect/').then((e) => {
//intento cambiar el valor del state (el self es una variable asignada con el this del padre por cuestión del scope de la funcion)
self.setState({
datos: e.data
})
})
//imprimo en consola el state pero sigue estando a como se asignó
console.log(self.state)
} catch (e) {
console.log(e)
}
lista = self.state.datos.map((item) => {
return (
<li key={item.id}>
<figure>
<img src='avatar/default.png' alt='avatar' />
<figcaption>
{ item.usuario }
<span className={ 'status', (item.estado == 'conectado') ? 'connect' : 'disconnect' }>{ item.estado }</span>
</figcaption>
</figure>
</li>
)
})
}
//aquí solo hago render mis datos :)
async render() {
await this.update()
return (
<ul>
<li className = 'buscador' >
<input type = 'text' placeholder = 'Buscar Persona' / >
</li> {this.lista}
</ul>
);
}
}
export default Personas
Por cualquier duda estaré al tanto, Saludes