[Vue warn] :렌더 오류: "TypeError: 정의되지 않은 속성 'xxx'를 읽을 수 없습니다."
웹 사이트의 콘솔에 다음 오류가 표시됩니다.
vue.esm.js?a026:628 [Vue warn]: Error in render: "TypeError: Cannot read property 'id' of undefined"
found in
---> <ApiInstellingen> at src/views/settings/analytics.vue
<Anonymous>
<CWrapper>
<TheContainer> at src/containers/TheContainer.vue
<App> at src/App.vue
<Root>
인터넷에서 비슷한 문제를 많이 봐왔으며, 데이터가 렌더링되기 전에 데이터에 액세스하려고 하는 것과 관련이 있다는 것을 알고 있습니다.내가 찾은 해결책들 중 어떤 것도 나에게 도움이 되지 않는 것 같았다.
내 코드는 다음과 같습니다.
<template>
<div>
<p> {{allAnalytics[0].id}} </p>
</div>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
export default {
name: "apiInstellingen",
methods: {
...mapActions(['fetchAnalytics'])
},
created() {
this.fetchAnalytics();
},
computed: mapGetters(['allAnalytics']),
};
</script>
내 경우에 효과가 있는 솔루션을 아는 사람이 있습니까?v-if를 시도하여 상태를 선언하고 데이터에 변수를 선언했지만 아무 것도 작동하지 않습니다.
감사해요!
이것은 당신의allAnalytics
어레이는 사용할 때 정의되어 있지 않기 때문에(페치는 아직 완료되지 않았기 때문에) 0 인덱스에 액세스할 수 없습니다.
렌더링 조건을 다음과 같이 추가할 수 있습니다.
<template>
<div>
<p v-if"allAnalytics && allAnalytics[0]"> {{allAnalytics[0].id}} </p>
</div>
에러 메시지로부터 얻을 수 있는 것은, 이 에러 메세지가allAnalytics
템플릿 렌더링 시 배열이 인스턴스화되지만 내용이 없습니다.
제 생각엔 당신이v-if="allAnalytics.length > 0
템플릿의 부모 div에는 이 에러는 표시되지 않습니다.하지만 더 중요한 것은, 스스로에게 물어봐야 한다는 것이다.allAnalytics
어레이의 길이가 제로인 적이 있습니까?"
아마도 당신은 다음 명령어를 추가할 필요가 있을 것이다.v-for
아이에게 지시하다<p>
태그를 붙여 반복하다allAnalytics
어레이, 예를 들어 다음과 같습니다.물론 이것은 사용 사례에 따라 다릅니다.
<template>
<div>
<p v-for="item in allAnalytics" :key="item.id" > {{item.id}} </p>
</div>
</template>
언급URL : https://stackoverflow.com/questions/63600789/vue-warn-error-in-render-typeerror-cannot-read-property-xxx-of-undefined
'programing' 카테고리의 다른 글
vue.js의 확인란과 함께 v-model을 사용하는 방법 (0) | 2022.08.08 |
---|---|
C코드 테스트는 구글 테스트로 괜찮습니까? (0) | 2022.08.08 |
Laravel Sanctum - 사용자 베스트 프랙티스 로그인 (0) | 2022.08.07 |
Maven이 사용할 JDK 지정 (0) | 2022.08.07 |
java.util 변환 방법날짜: java.sql.Date? (0) | 2022.08.07 |