Я сгенерировал динамический список комментариев к сообщению со своего сервера в Vue и теперь хотел бы, чтобы кнопка «ответ» появлялась на каждом комментарии, при нажатии на которую открывается текстовая область под ним и она связывается с этим комментарием.Однако мое хакерское решение означало, что нажатие на него открывало все текстовых полей комментариев, а не только одно.
Как я могу настроить таргетинг на каждый комментарий индивидуально с помощью функции показать / скрыть в Vue?
Я знаю, почему мое решение не работает, но я не знаю, с чего начать создание функции, нацеленной на конкретный комментарий, нажав на нее.
Шаблон (HTML)
<ul>
<li v-for="comment in comments" :key="comment.data.id">
<div>User details</div>
<div>Comment content</div>
<div>
<span>
<a v-on:click="hideReply = !hideReply">Reply</a>
</span>
</div>
<form v-if="hideReply">
<textarea>Reply text box</textarea>
<button>Reply button</button>
</form>
</li>
<li>Another comment in the list...</li>
<li>Another comment in the list...</li>
...
</ul>
Сценарий (JS)
export default {
name: 'Post',
components: {},
data () {
return{
hideReply: false,
comment: undefined,
comments: undefined
}
},
async created () {
// code to bring in my comments from server
},
methods: {
betterShowHideFunction () {
// where do i start
}
}
}