loadNewPages = async () => { //TODO this needs to be looping this.setState({ pageCount: 3 }) let response; do { response = await getMembers(this.state.pageCount++, this.state.size*3, this.state.divisionFilter, true),console.log(response)} while (response.status != 204) console.log("finished") console.log(this.props.members) this.handleRefresh() }Este código es perezoso para cargar datos de una base de datos. El ciclo do while obtiene una cantidad de datos y verifica si hay más páginas disponibles antes de volver a ejecutar. Una vez que el estado de la respuesta indique que no hay más páginas, el siguiente código debería ejecutarse. Sin embargo, no lo hace.
¿Es esto una cosa de react-js o solo soy estúpido?
Gracias por adelantado
La coma antes de console.log(response) debe reemplazarse por un punto y coma, ya que hace que la response sea igual al último valor en la cadena de comas. Dado que console.log devuelve undefined , la response no está undefined , por lo que undefined.status siempre no es igual a 204 . Por lo tanto, se repetirá para siempre.
do { response = await getMembers(this.state.pageCount++, this.state.size*3, this.state.divisionFilter, true); console.log(response)} while (response.status != 204)He encontrado el problema, que en parte fue culpa mía. estaba configurando un estado de respuesta 204, que denotaba el final de las páginas. rechazar contra la promesa. que arroja un error y, por lo tanto, interrumpe la ejecución del resto de la función.
Jejeje :P