function handlePairButtonsPressed(e) { console.log(e.target.getInnerHTML()); setAnswerValue(e.target.getInnerHTML()); console.log(answerValue); handleSubmitButton(); } function handleSubmitButtonPressed() { let fd = new FormData(); let csrftoken = getCookie('csrftoken'); questionID = roomData.round_list[displayedTable][3] experimentID = roomData.round_list[displayedTable][4] pair_or_question = roomData.round_list[displayedTable][5] console.log(answerValue); fd.append('answerValue', answerValue); fd.append('experimentID', experimentID); fd.append('questionID', questionID); fd.append('pair_or_question', pair_or_question); fetch('/audio/answerQuestion_POST/', { method: 'POST', headers: { "X-CSRFToken": csrftoken }, body: fd }); }Así que tengo dos botones llamados "botones de par" que establecen el valor de respuesta y lo envían automáticamente. De lo contrario, un usuario puede escribir su propio valor de respuesta y enviarlo. Las funciones a las que llaman estos botones se muestran arriba. AnswerValue es una variable de estado por cierto.
Los dos console.logs() en handlePairButtonsPressed() imprimen lo que quiero. El segundo confirma que la variable de estado AnswerValue se ha establecido en el valor correcto mediante setAnswerValue(). Y, sin embargo, cuando se llama a handleSubmitButtonPressed() justo después, reconoce el antiguo answerValue y no el nuevo. Si luego presiono el botón Enviar para activar simplemente handleSubmitButtonPressed() nuevamente, ENTONCES usa el nuevo answerValue establecido por handlePairButtonsPressed(). No estoy seguro de cómo arreglar esto.
Cualquier ayuda sería apreciada. Gracias.