父组件
<template>
<view class="user-order">
<tabs :active="active" @change="changeShow" :config="{itemWidth: 125}">
<tab v-for="(item, index) in order" :key="index" :title="item.name" :name="item.type">
<order-list v-if="item.isShow" :order-type="item.type" :ref="'order' + item.type"></order-list>
</tab>
</tabs>
</view>
</template>
父组件有个方法这么写的。
this.$refs['order' + order[active].type][0].reflesh()
子组件下面是
<template>
<view>
<view class="order-list">一堆,不写了</view>
</view>
</template>
reflesh() {
this.page = 1
this.orderList = []
this.status = loadingType.LOADING
this.type = 0
this.getOrderListFun();
}
this.$refs['order' + order[active].type][0].reflesh() ,这个应该是调用了子组件的方法,刷新数据的意思。那为什么this.$refs'xxx',为什么跟一个数组下标0,有没有相关的refs教程,我百度了一下,没找到好理解的教程。
当使用v-for的时候:
this.$refs.test
是个数组;this.$refs.test[0]
就是第一个li