Vue에서 몇 초 후에 자동으로 닫아야하는 알림을 표시하기위한 구성 요소를 만들고 알림 구성 요소가 만료 된 이벤트를 보낸 다음 부모에서이 이벤트를 수신하고 제거합니다 스플 라이스가있는 부모 데이터 배열에서 가끔 작동하지만 때로는 '경고'가 제거되지 않습니다.제한 시간이 지나면 배열에서 항목 제거
Vue.component('alert', {
template: '<li><slot></slot></li>',
mounted() {
setTimeout(() => this.$emit('expired'), 2000)
}
});
new Vue({
el: '#app',
data: {
count: 0,
alerts: []
},
methods: {
createAlert(){
this.alerts.push(this.count++)
},
removeItem(index) {
this.alerts.splice(index, 1)
}
}
});
는 this Fiddle를 참조하고 Create Alert
버튼을 몇 번을 클릭하고 경고의 일부는 기각되지 않습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
힌트 : 배열에서 항목을 제거하면 해당 항목 이후의 색인은 어떻게됩니까? – nnnnnn
@nnnnnn 자바 스크립트에서 연관 배열이없는 경우 다시 초기화하고 0부터 시작하지만 어떻게 특정 항목을 삭제할 수 있습니까? – enriqg9
나는 "승인 된"Vue 접근법이 무엇인지 알기에 Vue에 대해 충분히 알지 못하지만 JS에는 객체가 있으므로 아마도 한 가지 접근법은 객체의 배열을 'id' 및'text' 속성 (또는 뭐든지), 그리고 remove 함수에서 올바른'id'를 가진 객체의 배열을 검색하십시오. – nnnnnn