Vue.js 计算嵌套属性Vuejs

Vue.js 计算嵌套属性Vuejs,vue.js,vue-component,Vue.js,Vue Component,我对计算嵌套属性的模态组件有问题 我有一个父组件,它调用“模态组件”,通过道具传递数据。 我传递给组件的对象如下所示: modalProposal:{ name:test, old: { name: oldTest } } 因此,我将对象传递给我的组件: <modal :modal-proposal="modalProposal"></modal> modalProposal由v-for中组件父级的函数设置,类似: <button class="btn

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

我有一个父组件,它调用“模态组件”,通过道具传递数据。
我传递给组件的对象如下所示:

modalProposal:{
  name:test,
  old: { name: oldTest }
}
因此,我将对象传递给我的组件:

<modal :modal-proposal="modalProposal"></modal>
modalProposal由v-for中组件父级的函数设置,类似:

<button class="btn btn-primary" id="show-modal" v-on:click="openModal(proposal)">see proposal</button>
现在我的问题是,在模板中,如果我写proposal.name它会工作,但如果我写proposal.old.name它会返回错误

“TypeError:无法读取未定义的属性'name'”

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

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

这是一个警卫的例子

proposal.old && proposal.old.name

modalProposal
set是异步设置的吗?谢谢我用set-modalProposalthankyu!编辑了我的帖子:)是的,它工作,但我设置modalProposal是错误的?我已经用设置的方式编辑了我的问题@洛伦佐伯蒂,你设定的方式很好。我不确定您是否需要经过计算的,
提案
。到目前为止,您可以在模板中使用
modalProposal
。但在这两种情况下,你都需要警卫。好的!谢谢你!我需要它,因为没有它,模板中的提议对象不会随着道具的更改而更新。@LorenzoBerti这是真的:)
openModal(proposal){
                this.modalProposal = proposal;
                $('#proposalModal').modal('show');
            }
proposal.old && proposal.old.name