반응형
Vuex + VueJS: 계산된 속성을 하위 항목에 전달하는 것은 정의되지 않음
Vue 구성 요소에 대한 이 설명서를 읽고 있지만 구성 요소 속성에 Vuex 데이터를 사용하고 있다.
이 예에서 다음과 같이 한다.country_id
에 있다data
그것이 잘 작동하는 방법.하지만 언제country_id
하위 구성 요소의 Vuex 저장소에서 데이터를 반환하는 계산된 속성internalValue
항상 다음과 같이 초기화됨undefined
.
내가 뭘 잘못하고 있는 거지?
상위 구성 요소:
export default {
computed: {
country_id() {
return this.$store.state.user.country_id
}
},
mounted: function () {
this.$store.dispatch('user/load');
}
}
<template>
<child v-model="country_id"></child>
</template>
하위 구성 요소:
export default {
props: [ 'value' ],
data: function() {
return {
internalValue: null,
};
},
mounted: function() {
this.internalValue = this.value;
},
watch: {
'internalValue': function() {
this.$emit('input', this.internalValue);
}
}
};
<template>
<p>Value:{{value}}</p>
<p>InternalValue:{{internalValue}}</p>
</template>
상위 구성 요소가 해당 구성 요소가 가진 값을 전달함country_id
하위 구성 요소에 대한 자세한 내용은 다음을 참조하십시오.mounted
라이프사이클 후크 화재당신의 그 이후로.$store.dispatch
그 때까지 일어나지 않는다, 그것은 처음 있는 일이다.undefined
.
자식 구성 요소가 설정을 하는 경우internalValue
그 안에mounted
초기 라이프사이클 후크value
의 소품.undefined
. 그러면 언제.country_id
상위 업데이트, 하위 구성 요소의 업데이트value
속성은 업데이트되지만internalValue
남아 있을 것이다undefined
.
너는 만들어야 한다.internalValue
계산된 속성도:
computed: {
internalValue() {
return this.value;
}
}
또는 하위 구성 요소를 렌더링할 때까지 기다리십시오.country_id
정의됨:
<child v-if="country_id !== undefined" v-model="country_id"></child>
반응형
'Programing' 카테고리의 다른 글
"유니코드 오류 "유니코드 이스케이프" 코덱이 바이트를 디코딩할 수 없음...Python 3에서 텍스트 파일을 열 수 없음 (0) | 2022.03.12 |
---|---|
vs 코드를 사용하여 Vuejs 애플리케이션 실행 (0) | 2022.03.12 |
OS X에서 Python의 기본 버전을 3.x로 설정하는 방법 (0) | 2022.03.12 |
TypeError: Python3에서 파일에 쓸 때 'str'이 아니라 바이트와 같은 개체가 필요함 (0) | 2022.03.12 |
서버 렌더링 react-router v4 패스스루(404인 경우) (0) | 2022.03.12 |