【发布时间】:2022-07-09 07:25:43
【问题描述】:
我正在将 Vue2 项目转换为 Vue3 和 Typscript。有很多奇怪的错误,但我不知道如何在$el 上处理这个错误。
我只是想抓取上面模板中的每个<g> 标签,我可以,但是这个错误仍然存在。
关于如何解决这个问题的任何想法?
这里是组件的模板,但是整个组件太大放不上stackoverflow。我需要定位<g>标签。
<template>
<div class="pep-header-decoration-light">
<svg
xmlns="http://www.w3.org/2000/svg"
width="1158.942"
height="143.376"
viewBox="0 0 1158.942 143.376"
>
<g :style="`color: ${colors.green}`">
<!-- ... -->
</g>
<!-- many more g elements to select here too -->
</svg>
</div>
</template>
【问题讨论】:
-
暗示this 的骗子,其中谈到故意缺少
$el。也要小心使用this:箭头函数没有自己的this,setup中的this是null,如in the tip here 所列。 -
@JeffBowman 谢谢你的回答。我确实看到了
ref的使用,但我的模板需要所有标签,其中有很多。我真的需要在每个 标签上添加一个模板引用吗?好像有点过分了 -
您没有向我们展示模板,如果有 SVG 元素,您可以在其上设置
ref并从那里执行querySelectorAll或其他 DOM 遍历。您不能特别依赖this或$el在您的setup中。 -
我已将大部分反馈转换为答案。我将编辑与您的问题无关的部分;以后,请不要上传您的代码截图,而是复制粘贴文本,以便于阅读和修改。干杯!
标签: typescript vue.js vuejs3