我使用
建立了Vue信息库vue初始化webpack我的应用
现在,我的main.js
就是这样-
//使用import
命令加载的Vue构建版本
//(仅运行时或独立运行)已在webpack.base.conf中设置为别名。
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
Vue.component('todo-item', {
template: '<li>{{ todo }}</li>',
props: ['todo']
})
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App :groceryList="groceryList"/>',
data:{
message: 'abcdefghi',
groceryList: [
{ id: 0, text: 'Vegetables' },
{ id: 1, text: 'Cheese' },
{ id: 2, text: 'Whatever else humans are supposed to eat' }
]
}
})
我的App.vue
文件具有main.js中提到的ID为app
的模板
<template>
<div id="app">
At Parent: {{ groceryList[1].text }}
<br/>
<div>{{ message }}</div>
<router-view/>
<Table/>
<Users/>
</div>
</template>
<script>
import Users from './components/Users'
import Table from './components/Table'
export default {
name: 'App',
components: {
Users,
Table,
},
}
</script>
在这里,我一直收到cannot read property groceryList and message of undefined
的错误。我已经阅读了vue的文档,据此我没有犯任何错误。那么,这是什么问题?
答案 0 :(得分:1)
在main.js
中,您应将data
声明为一个函数,并将:message
传递给App组件
new Vue({
el: '#app',
router,
components: { App },
template: '<App :groceryList="groceryList" :message="message"/>',
data () {
return {
message: 'abcdefghi',
groceryList: [
{ id: 0, text: 'Vegetables' },
{ id: 1, text: 'Cheese' },
{ id: 2, text: 'Whatever else humans are supposed to eat' }
]
}
}
})
在App.vue
中,您需要将groceryList
和message
声明为道具
<script>
import Users from './components/Users'
import Table from './components/Table'
export default {
name: 'App',
props: ['message', 'groceryList']
components: {
Users,
Table,
},
}
</script>