Vuejs:如何正确地将道具传递给组件数据

时间:2017-07-09 13:00:56

标签: javascript vue.js

我正在玩Vue 2.0,但还有一些不清楚的地方.. 如何将道具传递给组件的内部数据? 看看文档似乎我做得对。

HTML

<lista-servizi :servizi="modello"></lista-servizi>

“modello”是已定义的数据。

VUE COMPONENT

Vue.component('lista-servizi', {
 template:
 '<span class="blu">{{listaServizi.lineaGialla.descrizione}}</span>',
    props: ['servizi'],
    data: function(){
    return{
       listaServizi : this.servizi
    }

基本上我试着给数据listaServizi提供与props servizi相同的值, 但在控制台中我有以下消息:

[Vue warn]: Error in render function: "TypeError: Cannot read property 'descrizione' of undefined"

found in

---> <ListaServizi>
       <Root>

2 个答案:

答案 0 :(得分:0)

您应该使用computed代替。

Vue.component('lista-servizi', {
  //...
  computed: {
    listaServizi() {
      return this.servizi
    }
  }
}

答案 1 :(得分:0)

您很可能遇到 modello 的问题。 通过定义 modello ,您的代码可以正常运行。以下是基于您的代码的示例:

<div id="app-1">
<lista-servizi :servizi="modello"></lista-servizi>
</div>



Vue.component('lista-servizi', {
  template: '<span class="blu">{{listaServizi.lineaGialla.descrizione}}</span>',
  props: ['servizi'],
  data: function(){
    return{
     listaServizi : this.servizi
    }
  }
})

var app1 = new Vue({
 el: '#app-1',
 data: {
 modello: { 
  lineaGialla : {
    descrizione : " This is a description"
    }
  }
}
})

这是指向工作箱的链接 https://jsbin.com/qoloqoz/1/edit?html,js,output