Добавление нового элемента в массив в Vue

#javascript #vue.js #vue-component

#javascript #vue.js #vue-компонент

Вопрос:

У меня есть следующая структура компонентов в vue

Комментарий.vue

 <template>
  <div class="container">
    <div class="site-comment" v-for="item in comments">
        <comment-item :comment="item" :comments="comments" :childs="childs"></comment-item>
    </div>
  </div>
 

И комментарий-пункт

   <div v-if="getChild(comment)">
      <comment :comments="childdsGett" :childs="childs"></comment>
    </div>
 

Я добавляю новый комментарий к массиву childdsGett

 axios.post('api/comment', {'parent_id': comment_id, 'text': this.comment_text}).then(function (data) {
             console.log(data.data)
             that.childdsGett.push(data.data)

          }).catch()
 

И получил ошибку

    You may have an infinite update loop in a component render function.
    
    found in
    
    ---> <CommentItem> at resources/js/components/CommentItem.vue
 

Комментарии:

1. Где вызывается этот axios.post метод?

2. После нажатия кнопки я вызываю функцию

Ответ №1:

Моя ошибка заключалась в обработке ответа. Возвращается массив.

 let data2 = data.data;

that.childdsGett.push(data2[0])