我在Vuejs挣扎着这个愚蠢的错误。 showMenu
中定义了computed
。商店也有正确的价值。
显然,如果我从Header.vue
删除以下内容,则控制台可以清除错误。但是,我总是那样工作,这是我第一次遇到这个错误。
<script src="./header.js"></script>
<style src="./header.scss" lang="scss" scoped></style>
[Vue警告]:财产或方法&#34; showMenu&#34;未在实例上定义,但在呈现期间引用。通过初始化属性,确保此属性在数据选项或基于类的组件中是被动的。
main.js
import Vue from 'vue';
import router from '@/router';
import { store } from '@vue/store/index.js';
import i18n from '@vue/i18n.js'
import App from '@vue/components/App.vue';
Vue.config.productionTip = false;
new Vue({
store,
i18n,
router,
render: h => h(App),
}).$mount(`#app`);
App.vue
<template>
<div id="app">
<div v-if="showMenu"><app-header></app-header></div>
<router-view :key="$route.fullPath"></router-view>
</div>
</template>
<script src="./App.js"></script>
<style src="./App.scss" lang="scss"></style>
App.js
import Vue from 'vue';
import AppHeader from '@vue/components/app/header/Header.vue';
export default {
name: `App`,
components: {
AppHeader,
},
data() { return {
}},
computed : {
showMenu(){ return this.$store.state.ui.showMenu; }
}
};