当前位置: 首页> 财经> 金融 > 石家庄新闻头条新闻最新今天_建筑网片施工中的用途_app推广_长沙网站外包公司

石家庄新闻头条新闻最新今天_建筑网片施工中的用途_app推广_长沙网站外包公司

时间:2025/7/14 4:50:38来源:https://blog.csdn.net/I_Allen_Liu/article/details/146046219 浏览次数:0次
石家庄新闻头条新闻最新今天_建筑网片施工中的用途_app推广_长沙网站外包公司

        前言:此问题困扰我已久,每次都是本地运行没问题,但发布到线上之后就获取不到动态组件的ref对象。

        之前的错误写法,本人前端经验不足,拿着老旧的思维逻辑拼凑,这种情况下在本地运行环境是可以实现点击下一步进行切换的,但打包压缩发布到线上之后,就失效了

<keep-alive><component :is="activeValue" :ref="stepList[activeId].refName"  />
</keep-alive>    <el-button @click="handleCreatNext()" type="primary">下一步</el-button>const Component1Ref = ref()
const Component2Ref = ref()const stepList = ref([{id: 0,label: '子组件1',value: shallowRef(Component1),refName: 'Component1Ref'},{id: 1,label: '子组件2',value: shallowRef(Component2),refName: 'Component2Ref'}])const handleCreatNext = async () => {
if (activeId.value == 0) {//处理步骤1的逻辑await Component1Ref.value.formRef.validate()
} else if (activeId.value == 1) {// 处理步骤2的逻辑
}if (activeId.value++ > 3) activeId.value = 0activeValue.value = stepList.value[activeId.value].value
}

正确做法请参考:

<keep-alive><component :is="activeValue" :ref="(el) => currentComponent = el"  />
</keep-alive>    <el-button @click="handleCreatNext()" type="primary">下一步</el-button>const currentComponent = ref(Component1);const stepList = ref([{id: 0,label: '子组件1',value: shallowRef(Component1),refName: 'Component1Ref'},{id: 1,label: '子组件2',value: shallowRef(Component2),refName: 'Component2Ref'}])const handleCreatNext = async () => {await nextTick();
if (activeId.value == 0) {//处理步骤1的逻辑await currentComponent.value.formRef.validate()
} else if (activeId.value == 1) {// 处理步骤2的逻辑
}if (activeId.value++ > 3) activeId.value = 0activeValue.value = stepList.value[activeId.value].value
}

关键字:石家庄新闻头条新闻最新今天_建筑网片施工中的用途_app推广_长沙网站外包公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: