Vue 不在组件中传递数据

Vue not passing data in component

尽管从组件传递了正确的 属性,但我不确定为什么数据未定义。

这是我的 vue 组件

Vue.component('store-squaretile-component',{
    template: '#store-squaretile-component',
    props: [
        'storeName'                 
    ],
    data: function () {
        return {}
    },
});

这是它的模板

<script type='text/x-template' id='store-squaretile-component'>
        <div class="stores-squaretile__container">
            <div class="stores-squaretile__btn stores-squaretile__btn--shadow" >
                <!-- background of store-squaretile to be set to img -->
                <div class="dropdown">
                    <div class="stores-squaretile__threedots" data-bs-toggle="dropdown" >
                        <i class="fas fa-ellipsis-v"></i>
                    </div>
                    
                    <ul id="dropdown-menu-store" class="dropdown-menu" >
                        <div class="'dropdown-item dropdown-title">Quick Actions</div>
                        <div class="dropdown-line"></div>
                        <a class="dropdown-item" href="#">Edit Store</a>
                        <a class="dropdown-item" href="#">Delete Store</a>
                    </ul>       
                </div>
            </div>
            <div class="stores-squaretile__title">{{storeName}}</div>    
        </div>
</script>

当我传递这个数组的组件时:

stores: [
            {name: "harry's",},
            {name: "Carl's junior",},
            {name: "Mcdonald's",}               
        ]

进入这个组件

<store-squaretile-component
    v-for="store in stores"
    :storeName="store.name"    
></store-squaretile-component> 

假设用数组中的名称替换 storeName 但我得到的是 NaN 或标题完全消失。

我收到了一个未定义的值。这有什么原因吗?

工作正常,只需将 storeName 替换为 storename 并将 :key 添加到 v-for 循环:

Vue.component('store-squaretile-component', {
  template: '#store-squaretile-component',
  props: ['storename'],
})

new Vue({
  el: '#demo',
  data() {
    return {
      stores: [
        {name: "harry's", },
        {name: "Carl's junior",},
        {name: "Mcdonald's",}               
      ]
    }
  }
})

Vue.config.productionTip = false
Vue.config.devtools = false
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="demo">
  <store-squaretile-component
    v-for="(store, idx) in stores"
    :storename="store.name"    
    :key="idx"
  ></store-squaretile-component> 
</div>
<script type='text/x-template' id='store-squaretile-component'>
  <div class="stores-squaretile__container">
    <div class="stores-squaretile__btn stores-squaretile__btn--shadow" >
      <div class="dropdown">
        <div class="stores-squaretile__threedots" data-bs-toggle="dropdown" >
          <i class="fas fa-ellipsis-v"></i>
        </div>
        <ul id="dropdown-menu-store" class="dropdown-menu" >
          <div class="'dropdown-item dropdown-title">Quick Actions</div>
          <div class="dropdown-line"></div>
          <a class="dropdown-item" href="#">Edit Store</a>
          <a class="dropdown-item" href="#">Delete Store</a>
        </ul>       
      </div>
    </div>
    <div class="stores-squaretile__title">{{storename}}</div>    
  </div>
</script>