[Vue 警告]:渲染错误:"TypeError: _vm is undefined"(在 中找到<Root>)



我最近切换到带有打字稿的类组件,并在我的网站上收到此错误。 此错误在火狐上,但在 chrome 上我得到

"TypeError: Cannot read property '$createElement' of undefined"
(found in <Root>)

查找它 我能找到的最接近的答案是关于将组件切换到路由器文件中的组件。但是我已经检查过了,我的一切似乎都很好。

这是我文件中的一些努力

Nav.vue

<script lang="ts">
import Vue from 'vue';
import { Component, Prop } from 'vue-property-decorator';
import { mapGetters } from 'vuex';
import Db from './Db.vue';
@Component({
components: { Db }
})
export default class Nav extends Vue {
get user() { return this.$store.state.user };
get token() { return this.$store.state.token };
logout() {
this.$store.dispatch('setState', {
token: '',
user: '',
db: '',
databases: []
});
this.$router.push('/');
};
};
<script lang="ts">
import Vue from 'vue';
import axios from 'axios';
import { Component } from 'vue-property-decorator';
@Component({
})
export default class Login extends Vue {
//state
username = '';
password = '';
usernameError =false;
passwordError = false;
error: string|number = '';
//methods
async login(): Promise<void> {
...
};
...

//lifecycle
mounted() {
console.log("HELLO WORLD I AM")
if (this.$store.state.token)
this.$router.push('/discover');
}
}
</script>

这是完整的谷歌错误

TypeError: Cannot read property '$createElement' of undefined
at render (eval at ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"713dcdf0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vuetify-loader/lib/loader.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90& (app.js:1461), <anonymous>:6:16)
at options.render (index.js?6435:83)
at createFunctionalComponent (vue.runtime.esm.js?2b0e:3058)
at createComponent (vue.runtime.esm.js?2b0e:3231)
at _createElement (vue.runtime.esm.js?2b0e:3428)
at createElement (vue.runtime.esm.js?2b0e:3353)
at vm.$createElement (vue.runtime.esm.js?2b0e:3488)
at Proxy.render (main.ts?bc82:19)
at Vue._render (vue.runtime.esm.js?2b0e:3542)
at Vue.updateComponent (vue.runtime.esm.js?2b0e:4060)
logError @ vue.runtime.esm.js?2b0e:1888
globalHandleError @ vue.runtime.esm.js?2b0e:1879
handleError @ vue.runtime.esm.js?2b0e:1839
Vue._render @ vue.runtime.esm.js?2b0e:3544
updateComponent @ vue.runtime.esm.js?2b0e:4060
get @ vue.runtime.esm.js?2b0e:4473
Watcher @ vue.runtime.esm.js?2b0e:4462
mountComponent @ vue.runtime.esm.js?2b0e:4067
Vue.$mount @ vue.runtime.esm.js?2b0e:8409
eval @ main.ts?bc82:15
./src/main.ts @ app.js:17260
__webpack_require__ @ app.js:727
fn @ app.js:101
1 @ app.js:17658
__webpack_require__ @ app.js:727
(anonymous) @ app.js:794
(anonymous) @ app.js:797

火狐完整版

TypeError: "_vm is undefined"
render App.vue:3
render index.js:83
VueJS 5
render main.ts:19
VueJS 6
<anonymous> main.ts:15
ts app.js:17260
__webpack_require__ app.js:727
fn app.js:101
1 app.js:17658
__webpack_require__ app.js:727
<anonymous> app.js:794
<anonymous> app.js:797

在使用nuxt时遇到此错误。该问题发生在页面刷新期间,但如果我通过 nuxt-link 进入有问题的页面,则不会出现此问题。

在我用v-show替换v-if后,它得到了解决,我一直在拉取服务器端异步数据并使用 vuex getters(状态也在服务器端修改(来修改模板。

通过重建和复制粘贴修复。

最新更新