반응형
Vue / Vuex : 입력 바인딩된 값이 업데이트되기 전에 트리거된 붙여넣기 이벤트
컴포넌트에 간단한 형식이 있습니다.
<form v-on:submit.prevent="submitSearch">
<input v-model="objId" @paste="submitSearch">
<button>Submit</button>
</form>
그리고.
var searchForm = {
methods : {
submitSearch() {
store.dispatch('submitSearch')
}
},
computed : {
objId: {
get () {
return ...
},
set (id) {
store.commit('objId', id)
}
}
},
...
};
입력 및 제출 시에는 잘 작동하지만 값을 붙여넣을 때는 잘 작동합니다.submitSearch
직전에 호출됩니다.objId
갱신되어 있지 않습니다.이 문제를 해결하기 위한 합의와 친근한 방법이 있습니까?
한 가지 방법은 로컬 변수를 갖는 것입니다.isPaste
로 설정합니다.true
의 경우,paste
이벤트가 트리거됩니다.그리고 등록도 합니다.input
다음에 트리거되는 이벤트paste
이벤트 및 확인isPaste
이true
이 경우 전송하고 설정합니다.isPaste
로.false
다시.
<input v-model="objId" @paste="paste" @input="input">
data(): {
return {
isPaste: false
}
},
methods: {
paste() {
this.isPaste = true;
},
input() {
if (this.isPaste) {
store.dispatch('submitSearch');
isPaste = false;
}
}
}
다음 방법으로 해결nextTick()
:
submitSearch() {
Vue.nextTick().then(function () {
store.dispatch('submitSearch')
})
}
권장되는 방법인지는 잘 모르겠지만 잘 작동하며 추가 변수를 피합니다.
언급URL : https://stackoverflow.com/questions/48368799/vue-vuex-paste-event-triggered-before-input-binded-value-is-updated
반응형
'programing' 카테고리의 다른 글
할당된 메모리 청크를 읽기 전용으로 표시하는 방법이 있습니까? (0) | 2022.08.16 |
---|---|
Vue 템플릿에서 'this'를 사용하시겠습니까? (0) | 2022.08.16 |
Vuetify로 이미 페이지 처리된 데이터 처리 (0) | 2022.08.16 |
유형 스크립트가 있는 vuejs에서 여러 구성 요소를 가져올 수 없음 (0) | 2022.08.15 |
Vuex는 많은 테이블을 로드하고 많은 대기 디스패치 페치를 연결합니까? (0) | 2022.08.15 |