Entonces, estoy creando un sitio web que intenta publicar primero una identificación desde el front-end y luego en el archivo php. El método de publicación devuelve una pregunta que se basa en la identificación que se envía al backend y consulta a través de la base de datos. este es mi codigo
<?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: access"); header("Access-Control-Allow-Methods: GET,POST"); header("Content-Type: application/json; charset=UT-8"); header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); $servername = "localhost"; $username = "root"; $password = ""; $database= "credentials"; // Create connection $db = mysqli_connect($servername, $username, $password, $database); // Check connection if ($db->connect_error) { die("Connection failed: " . $db->connect_error); } $postdata = file_get_contents("php://input"); if(isset($postdata) && !empty($postdata)){ $request = json_decode($postdata); $quizID = $request->QuizID; $sql = "SELECT * FROM question WHERE QuizID='$quizID'"; $result = mysqli_query($db,$sql); if(mysqli_num_rows($result)>0){ $json_array = array(); while($row = mysqli_fetch_assoc($result)) { $json_array[] = $row; } $response = ["data"=>"valid","quiz"=>$json_array]; echo json_encode($response); }else{ $response = ["data"=>"invalid"]; echo json_encode($response); } } ?>El front-end devolvió con éxito los datos JSON, pero sigue en bucle sin parar. ¿Por qué sucede eso? Intenté ejecutar la consulta primero y luego la almacené en la variable, pero aún así sigue en bucle.
Este es mi código de front-end
useEffect(()=>{ console.log("use effect"); const sendData = { QuizID: localStorage.getItem("quizID") } console.log("adad") axios.post("http://localhost/pepep/fetchLesson.php", sendData).then(res=>{ console.log("post success"); console.log(res.data.quiz[0]); setQuestion([res]) }) })Puede alguien ayudarme con esto ?
Tiene setQuestion([res]) que establecerá el estado en un nuevo valor.
Establecer el estado activará una nueva representación.
Su llamada useEffect no tiene una matriz de dependencia, por lo que se ejecutará en cada representación.
Agregue una matriz de dependencia con una lista de variables que deberían activar la función cuando cambien.
Como no parece estar usando ninguna variable externa, parece que no debería haber ninguna.
useEffect( () => { /* ... */ }, [] );