参考下面的模板,如何添加条件以确保menu不是v-for属性中的undefined

我试过v-for="menu?item in menu.items:[]"v-for="item in menu?.items",但都不管用.

<div v-for="item in menu.items">{{item.text}}</div>

推荐答案

将带有v-for指令的div放在<template>中,通过v-if判断menu:

<template v-if="menu">
  <div v-for="item in menu.items">{{ item.text }}</div>
</template>

这样,如果menu不存在,模板中的div就不会被渲染.


如果您真的希望在v-for语句中进行判断,就像您正在try 的那样,它将如下所示:

<div v-for="item in (menu ? menu.items : [])">{{ item.text }}</div>

Vue.js相关问答推荐

是否可以使用 Vuetify/VueJS 为轮播设置默认图像而不是第一个图像?

vue 3 中范围样式和深度样式的问题

vue 计算的 ant watch 不会在嵌套属性更改时触发

Vuetify 扩展面板,面板标题左侧带有图标

在 Ajax 函数中访问 Vue.js 组件属性

如何在 vue 路由中导航到 Bootstrap-vue 选项卡中的特定选项卡?

如何从 Vuex 状态使用 Vue Router?

使用上传组件而不触发 POST 请求

Object.assign 没有正确复制

Vuetify - 如何保持第一个扩展面板默认打开,如果我打开另一个面板,其他面板应该关闭?

React.js 是否有类似 Vue.js

Vue.js 如果在视图中

带有子菜单的 Vuetify 导航抽屉

Javascript/vue.js 接收json

安装后运行computed计算函数

Vue CLI - 将构建输出组合到单个 html 文件

如何异步验证 Vuetify 文本字段?

Vue - 如何在 v-if 或组件中使用窗口对象

$emit 不会触发子事件

如何将单选按钮绑定到 vuex store ?