El valor del modelo v dentro del bucle v-for no es único.
Esta es mi plantilla:
<template> <div id="FAQ" v-for="(question, index) in questions.slice().reverse()" :key="index" class="m-2 col-7" > <div v-if="getloggedUser.role == 'tutor'"> <div id="divQuestion"> <p class="m-5">{{ question.text }}</p> </div> <div id="divAnswer" class="mt-2"> <p class="m-2">{{ question.answer }}</p> </div> </div> <div v-else> <div id="divQuestion"> <p class="m-5">{{ question.text }}</p> </div> <div id="divAnswer" class="mt-2"> <p class="m-2">{{ question.answer }}</p> </div> <div v-if="question.answer == null" id="divPsycAnswer"> <textarea cols="60" rows="3" style="border-radius:12px" v-model="answer.text"></textarea> <button id="btnSend" @click="publishAnswer(question.id)">Responder</button> </div> </div> </div> </template>Este es el script (datos):
data() { return { // arrayFAQ: [], form: { text: "" }, answer: { text: '' }, questions: [], message: "", loading: false, id: null } },De esta manera, cada vez que escribo en un área de texto, escribo para todas las demás. Intenté agregar [índice] en el modelo v, pero aparece este error: "TypeError: no se puede usar el operador 'in' para buscar '0' en "
Prueba esto como tu modelo v
<textarea v-model="answers[`text${index}`]"></textarea>El objeto de respuesta podría ser un objeto vacío. Le dará text0, text1, text2, como propiedades de respuesta. Puede agregar cualquier cosa en lugar de un índice, como la identificación de su pregunta para un fácil acceso y saber qué texto es de qué pregunta.