<template>
<div class="block__test">
<div class="test__true">
<div class="true__inner">
<span>Првильный ответ</span>
<button @click="addAnswer">+</button>
</div>
<answer
v-for="answer in answers"
:answer="answer"
:key="answer.id"
/>
</div>
<div class="test__false">
<div class="false__inner">
<span>Не првильный ответ</span>
<button>+</button>
</div>
<answer/>
</div>
</div>
</template>
<script>
export default {
name: 'blockTest',
props: {
answers: {
type: Array,
required: true,
}
},
data(){
return {
answers: [
]
}
},
methods: {
addAnswer(answer){
this.answer.id = Date.now();
this.answers.push(answer);
}
}
}
</script>
<template>
<form class="text__inner">
<input
v-model="text"
v-if="isElVisible"
@change="showTextarea"
class="input"
/>
<p
@click="showTextarea"
v-else
>
{{header}}
{{text}}
</p>
</form>
</template>
<script>
export default {
name: 'answer',
data(){
return {
text:'',
header: 'Введите ответ',
isElVisible: false,
}
},
methods:{
showTextarea(){
this.isElVisible = !this.isElVisible;
this.header = '';
}
}
}
</script>
addAnswer(answer){
this.answer.id = Date.now();
this.answers.push(answer);
}
this.answers у тебя props нельзя модифицировать props нужно, одавать данные на ружу, чтобы родитель их обработал и вернул новое значение в props.this.answer.id
откуда у тебя взялась вообще это свойство answer, в коде его нет.props: {
answers: {
type: Array,
required: true,
}
},
data(){
return {
answers: [
]
}
},
пропа и свойство в data не могут иметь одинаковые имена<answer
v-for="answer in answers"
:answer="answer"
:key="answer.id"
/>