반응형
Vue 라우터: TypeError: 정의되지 않은 속성 '$createElement'를 읽을 수 없습니다.
그래서 저는 vue.js를 처음 접하는 사람이고 저의 어리석은 실수일 수도 있지만 안타깝게도 구글은 오늘 제 친구가 아닌 것 같습니다. 왜냐하면 제가 2시간 넘게 검색했지만 아무것도 찾지 못했기 때문입니다.
컴포넌트를 로드하려고 하면 문제가 발생.이 컴포넌트는 다른 컴포넌트에 네스트되어 있으며 라우터는 이 컴포넌트를 로드합니다.다른 컴포넌트가 로드되어 있다(사용방법)<router-view></router-view>
및 라우터)에 문제가 없습니다.이 컴포넌트의 유일한 차이점은 루트 아래에 3레벨이 중첩되어 있다는 것입니다.다른 컴포넌트 중 가장 깊은 컴포넌트는 2레벨입니다.
이 컴포넌트를 로드하려고 하면 2개의 경고와 에러가 표시됩니다.
경고 1:
[vue-router] Failed to resolve async component render: TypeError: Cannot read property '$createElement' of undefined
경고 2:
[vue-router] uncaught error during route navigation
오류:
TypeError: Cannot read property '$createElement' of undefined
at render (eval at ./node_modules/vue-loader/lib/template-compiler/index.js?{"id":"data-v-d2e33d82","hasScoped":false,"optionsId":"0","buble":{"transforms":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/pages/config-pages/sms/smsConfigDetails.vue (app.js:1656), <anonymous>:5:16)
at eval (vue-router.esm.js?fe87:1774)
at eval (vue-router.esm.js?fe87:1801)
at Array.map (<anonymous>)
at eval (vue-router.esm.js?fe87:1801)
at Array.map (<anonymous>)
at flatMapComponents (vue-router.esm.js?fe87:1800)
at eval (vue-router.esm.js?fe87:1736)
at iterator (vue-router.esm.js?fe87:1943)
at step (vue-router.esm.js?fe87:1717)
라우팅은 이렇게 되어 있습니다.둘 다beforeEnter
훅이 필요할 때 호출됩니다.로드에 실패한 컴포넌트는smsConfigDetails
:
import allConfigs from 'pages/config-pages/allConfigs'
import smsConfigs from 'pages/config-pages/sms/allSmsConfigs'
import smsDetails from 'pages/config-pages/sms/smsConfigDetails'
export default [
{
path: '/',
component: () => import('layouts/default'),
children: [
{ path: '', component: () => import('pages/index') },
[...]
{
path: 'allconfigs',
component: allConfigs,
children: [
{
path: 'sms',
component: smsConfigs,
children: [
{
path: ':configId',
components: smsDetails,
beforeEnter: (to, from, next) => {
console.log('SMS Details beforeEnter()')
next()
}
}
],
beforeEnter: (to, from, next) => {
console.log('SMS list beforeEnter()')
next()
}
}
]
}
[...]
]
},
{ // Always leave this as last one
path: '*',
component: () => import('pages/404')
}
]
로드에 실패한 컴포넌트의 코드는 현재 매우 간단합니다.
<template>
<div>
blablabla
</div>
</template>
<script>
</script>
<style>
</style>
부모에게는 1개밖에 없다.<router-view></router-view>
같은 에러 메세지가 표시되고, 다음과 같이 해결했습니다.
component: workspace
것은 아니다.
components: workspace
추가된 에 주의해 주세요.
컴포넌트: 워크스페이스
네, 루트에서 s를 떨어뜨리자마자 괜찮았어요.
다음과 같이 합니다.
component: workspace
언급URL : https://stackoverflow.com/questions/50218836/vue-router-typeerror-cannot-read-property-createelement-of-undefined
반응형
'source' 카테고리의 다른 글
Vuex가 개별 돌연변이에 가입하다 (0) | 2022.08.18 |
---|---|
Vue-i18n이 vuex에 정의되어 있지 않습니다. (0) | 2022.08.18 |
vue.js에서 업데이트되지 않는 이유 (0) | 2022.08.18 |
Hadoop "플랫폼에 네이티브 하둡 라이브러리를 로드할 수 없습니다" 경고 (0) | 2022.08.18 |
날짜 문자열을 java.util로 구문 분석할 때 패턴 문자 'T'가 잘못되었습니다.날짜. (0) | 2022.08.18 |