Vue JS에서 v-for를 사용하여 구성 요소에 대한 소품 설정
나는 전화 카드를 가지고 있다.소품을 전달하려는 vue 구성 요소.
<template>
<div class='phone-number-card'>
<div class='number-card-header'>
<h4 class="number-card-header-text">{{ cardData.phone_number }}</h4>
<span class="number-card-subheader">
{{ cardData.username }}
</span>
</div>
</div>
</template>
<script>
export default {
props: ['userData'],
components: {
},
data() {
return {
cardData: {}
}
},
methods: {
setCardData() {
this.cardData = this.userData;
console.log(this.cardData);
}
},
watch: {
userData() {
this.setCardData();
}
}
}
구성요소는 userData의 속성을 수신하고, 이 속성은 구성요소의 cardData 속성으로 설정된다.
페이지로 사용하는 Vue.js 구성 요소가 하나 더 있어.이 페이지에서 나는 번호와 사용자 목록을 얻기 위해 API로 AJAX 전화를 걸고 있다.
import PhoneCard from './../../global/PhoneCard.vue';
export default {
components: {
'phone-card': PhoneCard
},
data() {
return {
phoneNumbers: [],
}
},
methods: {
fetchActiveNumbers() {
console.log('fetch active num');
axios.get('/api').then(res => {
this.phoneNumbers = res.data;
}).catch(err => {
console.log(err.response.data);
})
}
},
mounted() {
this.fetchActiveNumbers();
}
}
일단 아약스 통화의 응답 데이터를 전화 번호 속성처럼 설정했다.
이 문제가 발생한 후, 나는 phoneNumber 배열의 각 번호를 통해 반복하고 현재 번호의 값을 다음과 같이 카드 구성요소에 바인딩하려고 한다.
<phone-card v-for="number in phoneNumbers" :user-data="number"></phone-card>
그러나 이는 속성 사용자 이름이 정의되지 않음, 오류 렌더링 구성 요소, 정의되지 않은 속성 분할을 읽을 수 없음 등의 개발 도구에 오류를 발생시킨다.
나는 이것을 하기 위해 다른 방법을 시도해 보았지만 그것들은 모두 같은 오류를 일으키는 것 같다.구성 요소의 소품을 루프의 현재 반복 객체에 적절하게 바인딩하는 방법에 대한 아이디어는?
해보다
export default {
props: ['userData'],
data() {
return {
cardData: this.userData
}
}
}
몇 번 땜질한 후, 내 질문에 대답했다.
시계 기능에 있는 데이터를 설정하기 위해 함수를 호출하는 대신, 내가 할 수 있는 일은 이것뿐이었다.
mounted() {
this.cardData = this.userData;
}
이상해, 예전에 부품 소품 변경을 듣기 위해 시계 방식을 써봤는데, 흠잡을 데 없이 작동했는데, 여기 뭔가 다른 게 있나 봐.무엇이 다르고 왜 이런 식으로 작용하는지에 대한 어떤 통찰력이라도 있으면 멋질 것이다!
참조URL: https://stackoverflow.com/questions/42869172/setting-props-for-components-using-v-for-in-vue-js
'IT이야기' 카테고리의 다른 글
Vue.js 2 - vue-youtube가 포함된 비디오 종료 상태 탐지 방법? (0) | 2022.04.25 |
---|---|
서버측 페이지 지정을 사용하여 Quasar q-table을 구현하는 방법 (0) | 2022.04.25 |
Ubuntu 아래에 JDK 11을 설치하는 방법? (0) | 2022.04.25 |
Java에서 임시 디렉토리/폴더를 만드는 방법? (0) | 2022.04.25 |
복합 C 선언 (0) | 2022.04.25 |