vue遍历数组,用数组中的字段拼接一个data中定义好的数组名称进行遍历为何不显示?

<el-select placeholder="请选择" clearable>
    <el-option
      v-for="item in (item.dbField + '_list')"
      :key="item.value"
      :label="item.label"
      :value="item.value"
    />
</el-select>
//数组中某项item.dbField为is_original_order
data() {
    return {
      is_original_order_list: [
        { label: "1111", value: "0" },
        { label: "2222", value: "1" },
      ],
    };
},

为何下拉菜单中没有任何渲染?

阅读 2.2k
2 个回答

这样可以了

v-for="item in parentData[item.dbField + '_list']"

parentData: {
   is_original_order_list: [
     { label: "111", value: 0 },
     { label: "222", value: 1 },
   ]
}

我合计着“(item.dbField + '_list')”这玩意儿不是个字符串吗?

你想要实现的只能computed吧

computed: {
    list() {
        return this[this.dbField + '_list']
    }
}

但是我又看到你有个item.dbField,估摸着外层还有个循环吧。

==== 分割线 ====

那外层的数据也可以如法炮制,直接把需要的数组塞进去

computed: {
    conditions() {
        return [this.a_list, this.c_list]
    }
}

<template>
<div v-for="condition in conditions">
    <el-select>
        <el-option v-for="something in condition"></el-option>
    </el-select>
</div>
</template>
推荐问题