получите «_id» из [ ] в цикле v-for и повторно используйте его в данных // vuecli

#javascript #vue.js #vue-cli

Вопрос:

я зацикливаюсь на [postArray], чтобы получить несколько сообщений, у каждого сообщения есть свой «_id». И я хочу повторно использовать этот «_id», чтобы добавить лайки к правильному сообщению.

это петля v-для:

 lt;div class="posts" v-for="(element, index) in postArray" :key="index"gt;  lt;pgt;{{ element.title }}lt;/pgt;  lt;pgt;{{ element.content }}lt;/pgt;  lt;pgt;{{ element.likes.length }}lt;/pgt;  lt;button @click="addLike"gt;Add Likelt;/buttongt;  lt;/divgt;  

это данные, которые я хочу сохранить свой идентификатор в postID:

 data() { return {  title: "",  content: "",  postArray: [],  postId: "", };  

},

и это те методы, которые я хотел бы использовать _id:

 async addLike() {  const url =  "https://dw-s3-nice-master-cake.osc-fr1.scalingo.io/post/like";   const options = {  method: "POST",   headers: {  "Content-Type": "application/json",  Authorization: "bearer "   localStorage.getItem("token"),  },  body: JSON.stringify({  postId: this.postId,  }),  };  const response = await fetch(url, options);  const data = await response.json();  console.log(data);  this.postId = data.posts._id;  console.log(this.postId); },  

также на экране консоли.log(данные):

приставка.снимок экрана журнала

[введите описание изображения здесь][2]

Ответ №1:

Попробуйте отправить _id своему методу:

 lt;button @click="addLike(element._id)"gt;Add Likelt;/buttongt;  

а затем получите его:

 async addLike(id) {  ...  postId: id,  ...