Date.now()
의 사용이 올바르지 않습니다. 너무 빨리 발생하므로 타임 스탬프가 2 this.$set
작업 사이에서 변경되지 않는 경우가 있으므로 logs
개체의 값을 다시 정의하십시오.
{
1509287060410:"I was clicked!"
1509287060412:"I was clicked again!"
1509287061243:"I was clicked again!"
}
마지막 1509287061243
재산권이었다 내가 처음 버튼 그래서
1509287060410 // first result of Date.now.
1509287060412 // Second Result of Date.now - this time, it's different from the first attempt, so 2 different entries will be created.
1509287061243 // another click on the button - timestamp has changed obviosuly.
1509287061243 // Javascript did the second Set so far, that time timestamp didn't even changed yet. thus, it overrides the value of the second entry
이 로그 4 개 this.$set
연산의 결과를 클릭하면
생성이 logs
객체 Date.now()
의 로그를 참조 overrriden.
(함수의 두 번째 인수) 키를 호출 할 때마다이라는 키를 사용해야합니다. 또한 로그가 Array
에 입력 변경할 수 있습니다
data() {
return {
title: 'Multiple Vue.set() not updating object/DOM',
logs: {},
index: 0
}
},
methods: {
log: function(data) {
console.log(Date.now())
this.index += 1
this.$set(this.logs, this.index, data)
},
와우, 나는 지금까지 내가 키를 오버라이드 (override) 할 수 있다는 사실에 대해 생각해 본 적이있다! 이것을 프레임 워크 내에서 수행하면 실제로 그것에 대해 생각하게 만들고 기본 사항을 푸시 할 수 있습니다. 나는 이것이 Angular 세계에서 직면했던 것과 같은 것이라고 생각하고있었습니다. 감사합니다. – tbutcaru
문제 없음 ... :) – LiranC