【发布时间】:2020-08-25 21:51:52
【问题描述】:
我正在尝试创建一个用于预算跟踪的 vue 应用程序,并且我有一个 BudgetItems 组件,我想在 /budget 路由中呈现它。所有其他组件和原始 HTML 呈现,但这个组件没有
这是 BudgetItems 组件:
<template>
<div>
<BudgetItem v-for="item in Items" v-bind:key='item.id' v-bind:Item="item" />
</div>
</template>
<script>
import BudgetItem from './BudgetItem'
export default {
name: 'BudgetItems',
components: {
BudgetItem,
},
props: [
'Items'
]
}
</script>
这是我用来渲染单个项目的 BudgetItem 组件:
<template>
<div class="budgetitem">
<h1>{{item.title}}</h1>
<h1>{{item.value}}</h1>
</div>
</template>
<script>
export default {
name: 'BudgetItem',
props: [
'Item'
]
}
</script>
最后,这是预算页面视图:
<template>
<div class="budget">
<Nav />
<h1>Budget</h1>
<BudgetItems v-bind:Items="items" />
</div>
</template>
<script>
import Nav from "../components/Nav"
import BudgetItems from "../components/BudgetItems"
export default {
name: 'Budget',
components: {
Nav,
BudgetItems,
},
data(){
return{
items: [
{
id: 1,
income: false,
title: "Item 1",
value: 200
},
{
id: 2,
income: true,
title: "Item 2",
value: 500
},
{
id: 3,
income: false,
title: "Item 3",
value: 10
},
]
}
}
}
</script>
另外,当我查看 vue 开发工具选项卡时,该组件出现了,它只是没有显示在屏幕上
【问题讨论】:
-
如果它在开发工具中,我怀疑它也在 DOM 检查器中?是不是您将 CSS 分配给了隐藏项目的“budgetitem”类?
-
<BudgetItems v-bind:Items="items" />,props 应该使用小写。所以把它改成v-bind:items。并更正 BudgetItems 中的声明=道具项目。 -
这能回答你的问题吗? vuejs - computed is not working with props
-
问题的原因是
BudgetItem.vue中的大小写不匹配。请注意,您在模板中使用了item,但 prop 实际上是Item(大写)。 codesandbox
标签: vue.js