美文网首页
Vue (Emitted value instead of an

Vue (Emitted value instead of an

作者: 很好就这样吧 | 来源:发表于2021-04-08 11:49 被阅读0次

    使用ant-design-vue,自己实现一个时间选择表,如图


    <a-table :pagination="false" :columns="columns" :data-source="dataSource":scroll="scroll">
          <span v-for="(col, idx) in ['day0', 'day1', 'day2','day3','day4', 'day5','day6', ]" :key="idx" 
            :slot="col"slot-scope="day">
            <div class="board board-null" v-if="disable">--</div>
            <div v-else>
              <div v-if="EXPIRED">已过期</div>
              <div v-else-if="SELECTED">已占用</div>
              <div v-else>
                <div v-show="UN_SELECTED" >可选</div>
                <div v-show="MY_SELECTED"> 已选</div>
              </div>
            </div>
          </span>
        </a-table>
    

    运行代码有如下警告:



    意思大概就是说,性能上考虑,不建议v-for和slot同时用在同一个标签上,
    好吧,我按照提示把两个功能做了拆分

    <a-table :pagination="false" :columns="columns" :data-source="dataSource":scroll="scroll">
          <span v-for="(col, idx) in ['day0', 'day1', 'day2','day3','day4', 'day5','day6', ]"  :key="idx" >
            <template :slot="col" slot-scope="day">
              <div class="board board-null" v-if="disable">--</div>
              <div v-else>
                <div v-if="EXPIRED">已过期</div>
                <div v-else-if="SELECTED">已占用</div>
                <div v-else>
                  <div v-show="UN_SELECTED" >可选</div>
                  <div v-show="MY_SELECTED"> 已选</div>
                </div>
              </div>
            </template>
          </span>
        </a-table>
    

    运行后是没有警告了,然鹅,表格里啥也没有了,因为a-table的子元素必须是slot才能展示出来,而我所有列是一样的,没必要写多个slot,所以v-for也是要有的,这两个就只能在一起了。
    各位大佬,有什么好的组合方式的话,欢迎指教

    相关文章

      网友评论

          本文标题:Vue (Emitted value instead of an

          本文链接:https://www.haomeiwen.com/subject/dfwmkltx.html