在vue项目中使用element-ui需要根据后台数据动态加载el-tabs,请问如何在每次进入页面时自动跳转到第一个页面?

附上代码
<template>

<div class="ups">
    <el-tabs v-model="editableTabsValue" type="card" @tab-click="show_upsPage" class="sub">
        <el-tab-pane :key="item.name"
                     v-for="item in editableTabs"
                     :label="item.title"
                     :name="item.name">
            <upsPage v-if="item.active"></upsPage>
        </el-tab-pane>
    </el-tabs>
</div>

</template>

<script>
// import { getList } from '@/api/table'
import UpsPage from '@/views/table/UPS/UpsPage/'

export default {

components: {
  upsPage: UpsPage
},
name: 'UPS',
data() {
  return {
    editableTabsValue: 'A',
    editableTabs: []
  }
},
methods: {
  show_upsPage(event) {
    // var _this = this
    console.log(this.editableTabs)
    this.editableTabs.forEach(function(item) {
      if (item.name === event.name) {
        item.active = true
      } else {
        item.active = false
      }
    })
  }
},
created: function() {
  this.$store.dispatch('upsNumber').then((res) => {
    this.editableTabs = res.data
  }).catch(() => {
  })
  console.log(this.editableTabs)
}

}
</script>

子组件的渲染是通过v-if进行的,而渲染的子组件是需要和item.name进行对应的,由于v-if中的变量名item.active并不是多个,所以需要关联item.name进行单独判断,由此达到后台有多少个数据就能渲染多少个子组件的目的,求各路大神支招。

阅读 12.8k
2 个回答

获取完数据后设置editableTabsValue的值为索引0name不就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题