반응형
Vue JS가 반환된 메서드 데이터를 DOM에 표시할 수 없음
템플릿 html
<div class="item" v-for="n, index in teamRoster">
<span> {{ getFantasyScore(n.personId) }} </span>
</div>
방법
getFantasyScore(playerId) {
if(playerId) {
axios.get(config.NBLAPI + config.API.PLAYERFANTASYSCORE + playerId)
.then( (response) => {
if( response.status == 200 ) {
console.log(response.data.total)
return response.data.total;
}
});
}
}
반환된 데이터를 DOM에 표시하려고 하는데 아무것도 표시되지 않아.하지만 내가 로그를 위로하려고 하면 데이터가 표시된다.어떻게 하면 진열할 수 있을까.제가 무엇을 빠뜨리고 있나요?
문제는, 당신의getFantasyScore
방법은 아무 것도 반환하지 않고, 심지어 데이터는 비동기적이며 반응적이지 않다.
생성 시 데이터를 로드하는 구성 요소를 만들 것이다.뭐랄까
Vue.component('fantasy-score', {
template: '<span>{{score}}</span>',
props: ['playerId'],
data () {
return { score: null }
},
created () {
axios.get(config.NBLAPI + config.API.PLAYERFANTASYSCORE + this.playerId)
.then(response => {
this.score = response.data.total
})
}
})
그리고 네 템플릿에서
<div class="item" v-for="n, index in teamRoster">
<fantasy-score :player-id="n.personId"></fantasy-score>
</div>
AJAX 결과는 비동기적이므로 메소드를 사용하면 안 된다.당신은 모든 것을 되찾을 수 있다.teamRoster
그리고 나서 이것을 당신의 것에 추가하십시오.div
:
<div class="item" v-for="fantasyScore in teamRoster" v-if="teamRoster">
<span> {{ fantasyScore }} </span>
</div>
반응형
'IT이야기' 카테고리의 다른 글
앞에 매개 변수를 추가하는 방법각 (0) | 2022.03.16 |
---|---|
@click과 v-on의 차이:Vuejs 클릭 (0) | 2022.03.16 |
rx.js가 있는 배열의 추가 사항을 관찰할 수 있는가? (0) | 2022.03.16 |
반응 후크(useState) 및 Mobx [mobx-react-lite 없음] (0) | 2022.03.16 |
탐색 5 대응: 최대 업데이트 깊이가 초과됨 (0) | 2022.03.16 |