vue.js - 计算嵌套属性 Vuejs

标签 vue.js vue-component

我对计算嵌套属性的模态组件有疑问。

我有一个父组件,它调用“模态组件”通过 Prop 传递数据。
我传递给我的组件的对象是这样的:

modalProposal:{
  name:test,
  old: { name: oldTest }
}

所以我将对象传递给我的组件:

<modal :modal-proposal="modalProposal"></modal>

所以我的组件模态应该具有:

export default {
        props:["modalProposal"],
        data() {
            return {
            }

        },
        computed:{
            proposal(){
                return this.modalProposal;
            }
        }
    }

modalProposal 由 v-for 中组件父级的函数设置,例如:

<button class="btn btn-primary" id="show-modal" v-on:click="openModal(proposal)">see proposal</button>

函数openModal:

openModal(proposal){
                this.modalProposal = proposal;
                $('#proposalModal').modal('show');
            }

现在我的问题是,在模板中,如果我写 proposal.name 它可以工作,但如果我写 proposal.old.name 它会返回错误

"TypeError: Cannot read property 'name' of undefined"

如何访问传递给提案的嵌套属性?

最佳答案

如果在任何时候modalProposal.old未定义,则代码proposal.old.name会抛出错误。通常,这可以通过使用防护来解决,或者只是在 proposal.old 具有值之前不尝试访问 proposal.old.name

这是一个守卫的示例。

proposal.old && proposal.old.name

关于vue.js - 计算嵌套属性 Vuejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45331134/

相关文章:

vue.js - 如何在 Nuxt.js 中使用 Mixpanel

node.js - 有没有办法在不使用 npm 服务器的情况下构建 vue.js 组件?

javascript - 如何用vue js制作固定导航栏?

javascript - 在 vue.js 组件中操作 props

javascript - 如何在 vue js 中使用 html 的选择选项仅显示该类别的服务?

javascript - 使用 VueJS 更改多张卡片的类

plugins - sublime text 3中Vue模板中Pug语法高亮的方法

javascript - 刷新 vue 页面并进行更改

vue.js - 如何使用户身份验证中的参数动态化?

vue.js - 是否可以将数据从 Polymer 组件传递到 Vue 组件?