chaeyeonan / Vue_practice

vue로 todolist 만들기 + vue 연습 (vue2)
https://vue-practice-todolist.vercel.app/
0 stars 0 forks source link

[delete] - filter 함수 적용 시 화면 반영 안됨 #1

Open chaeyeonan opened 9 months ago

chaeyeonan commented 9 months ago

문제

[ 반응성 문제 ] 할일을 삭제하는 기능 구현 시 filter 함수를 사용하면 todolist 배열에서는 삭제가 되나, 화면에 반영 안됨

TodoApp.vue

deleteTodo(id) {
      this.todolist = this.todolist.filter((item) => item.id !== id);
 }
chaeyeonan commented 9 months ago

원인

TodoApp.vue

<todo-item-list
    :todoItems="todolistOfToday"
    :date="createdDate"
    @delete="deleteTodo"
    @update="updateTodo"
/>

TodoItemList.vue

props: {
    date: {
      type: String,
      required: true,
    },
    todoItems: {
      type: Array,
      required: true,
    },
},
data() {
    return {
      todolist: this.todoItems,
    };
}

해결방법 (1)

기존 TodoItemList.vue

<todo-item
      v-for="todos in todolist" 
      :key="todos.id"
      :todo="todos"
      @delete="deleteData"
      @update="updateData"
/>

수정 TodoItemList.vue

<todo-item
      v-for="todos in todoItems"  //props 받은거 그대로 사용
      :key="todos.id"
      :todo="todos"
      @delete="deleteData"
      @update="updateData"
/>
chaeyeonan commented 9 months ago

해결방법 (2)