在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/人工智能  HTML/ 為什么使用組件內(nèi)部 data 的數(shù)據(jù)可以 v-for 雙層嵌套,而用來(lái)自父組件的

為什么使用組件內(nèi)部 data 的數(shù)據(jù)可以 v-for 雙層嵌套,而用來(lái)自父組件的 props 里數(shù)據(jù)就不行?

發(fā)現(xiàn) v-for 嵌套 v-for 使用時(shí),如果用的數(shù)據(jù)是自己組件內(nèi)部 data 里的,就沒有問(wèn)題;
但是如果用來(lái)自父組件傳遞的 props 的數(shù)據(jù), 就會(huì)在第二層 v-for 出問(wèn)題,會(huì)渲染不出來(lái)。

想知道原因?

父組件代碼

<template>
  <div id="parent">
    <test-v-for :specProps="specAttrs"></test-v-for>
  </div>
</template>

<script>
  import TestVFor from './TestVFor.vue'
  export default {
    name: 'parent',
    components: {TestVFor},
    data () {
      return {
        specAttrs: [
          {name: '尺碼', list: [46, 47, 48, 49, 50]},
          {name: '顏色', list: ['湖藍(lán)色']}
        ]
      }
    }
  }
</script>

<style></style>

子組件代碼

<template>
  <div id="child">
    // 使用自己組件內(nèi)部的 data
    <h1>v-for by own data</h1>
    <dl v-for="item in specs">
      <dt class="fs24 l">{{item.name}}</dt>
      <dd>
        <a href="javascript:;" v-for="(val, index) in item.list">
          <span>{{ val }}</span>
        </a>
      </dd>
    </dl>
    <hr>
    // 使用自己來(lái)自父組件傳遞的 data
    <h1>v-for by props data</h1>
    <dl v-for="item in specProps">
      <dt class="fs24 l">{{item.name}}</dt>
      <dd>
        <a href="javascript:;" v-for="(val, index) in item.list">
          <span>{{ val }}</span>
        </a>
      </dd>
    </dl>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        specs: [
          {name: '尺碼', list: [46, 47, 48, 49, 50]},
          {name: '顏色', list: ['湖藍(lán)色']}
        ]
      }
    },
    props: {
      specProps: Array
    }
  }
</script>
<style></style>

渲染效果如下
頁(yè)面效果

回答
編輯回答
萢萢糖

我完全復(fù)制粘貼了你的代碼。。并沒有發(fā)生你所截圖的情況。

clipboard.png

另外 你這注釋的方式。。在template里不是應(yīng)該遵循h(huán)tml的注釋方式么。你看我這圖里你的注釋都被當(dāng)成text輸出了。所以你這構(gòu)建環(huán)境具體怎么樣的和vue版本、package乃至開發(fā)工具都最好貼出來(lái)給大家參詳 避免玄學(xué)問(wèn)題。。

2017年4月23日 14:23
編輯回答
萌二代

自己挖的坑自己來(lái)填。我后來(lái)單獨(dú)寫了一個(gè)可運(yùn)行的 github demo,地址為:https://github.com/Emma1075/v...

運(yùn)行后發(fā)現(xiàn)確實(shí)沒有這個(gè)問(wèn)題。

后來(lái)反復(fù)排查原因,是我在項(xiàng)目中父組件里的數(shù)據(jù)處理出了問(wèn)題。第二層嵌套的 list 應(yīng)該是一個(gè)數(shù)組,我父組件處理list元素重復(fù)值時(shí)用了 new Set() 來(lái)去重,去重后忘記了把 Set 格式轉(zhuǎn)換回 Array。

所以導(dǎo)致在我自己項(xiàng)目里第二層list v-for 渲染不出來(lái)。

解決方法:list: [...new Set(tempArr)]

2018年2月11日 06:33