Soy nuevo en React y tengo algunos problemas.
Esta es mi llamada API actual.
Axios.post(Addr_currentRound_addOne, { gameId: gameId }).then(history.push("/leiter_tunierplan/"+gameId));Y este es el fragmento de código API correspondiente.
app.post("/currentRoundAddOne", (req, res) => { const gameId = req.body.gameId; db.query( "UPDATE tunierplan SET currentRound=currentRound+1 WHERE id=?;", [gameId], (err, result) => { if (err) { console.log(err); } else { res.send("Daten Übertragen"); } } ); });El problema aquí: currentRound, siempre debe aumentar en +1 cuando se ejecuta la llamada. Y luego Redirigir al "/leiter_tunierplan/" dado PERO De vez en cuando, no funciona. No lo está aumentando en ningún valor (+1) Mi primer pensamiento es: Debido a que es asíncrono, puede cancelarse del historial. empujar, antes de que se complete. ¿Tengo razón? y como puedo solucionarlo Gracias ya
¿Es game gameId la identificación ya incrementada para la página siguiente? No veo que se incremente en ninguna parte de su código.
Si es así, intente poner history.push en una devolución de llamada, como esta:
...then(() => history.push("/leiter_tunierplan/"+gameId)); Esto se debe a que then toma una función de devolución de llamada como parámetro.
La solución a todo es agregar preventDefault(); Mi problema fue que el lado se recargó ...
Creo que intenta async : await ya que la solicitud a la base de datos está basada en promesas. Mi sugerencia:
app.post("/currentRoundAddOne", async (req, res) => { const gameId = req.body.gameId const data = await db.query("UPDATE tunierplan SET currentRound=currentRound+1 WHERE id=?;", [gameId], (err, result) => { if (err) console.log(err); } console.log(data) // check updated data, it should return id })¡Espero que funcione!