<template v-for="(tplItem, tplIndex) in processStructureValue.tpls">
<fm-generate-form
v-show="currentNode.hideTpls===undefined ||
currentNode.hideTpls===null ||
currentNode.hideTpls.indexOf(tplItem.form_structure.id)===-1"
:key="tplIndex"
:ref="'generateForm-'+tplItem.id"
/>
</template>
promiseList.push(this.$refs['generateForm-' + tpl.id][0].getData())
在Vue3 中如何实现呢?
<template v-for="(tplItem, tplIndex) in processStructureValue.tpls" :key="tplIndex">
<generate-form v-show="currentNode.hideTpls === undefined ||
currentNode.hideTpls === null ||
currentNode.hideTpls.indexOf(tplItem.form_structure.id) === -1"
:ref="generateFormRef(tplItem.id)"
</template>
增加一个转换函数
const generateForms = ref({});
const generateFormRef = (id) => {
return (el) => {
generateForms.value[`generateForm-${id}`] = el;
};
};
const formKey = `generateForm-${tpl.id}`;
if (generateForms.value[formKey]) {
promiseList.push(generateForms.value[formKey].getData())
}