Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '$el')
时间: 2023-08-28 18:22:17 浏览: 308
抱歉,这个错误是因为 `$el` 属性在 Vue3 中已被移除。在 Vant4 中,可以使用 `ref` 创建的引用通过 `.value` 来访问其值,而不需要使用 `$el`。
请将代码修改如下:
```vue
<template>
<van-field
v-model="inputValue"
ref="inputRef"
@focus="handleFocus"
></van-field>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const inputValue = ref('');
const inputRef = ref(null);
const handleFocus = () => {
const inputElement = inputRef.value.$el.querySelector('input');
const cursorPosition = inputElement.selectionStart;
console.log('光标位置:', cursorPosition);
};
return {
inputValue,
inputRef,
handleFocus
};
}
};
</script>
```
在上述代码中,我们通过 `inputRef.value.$el.querySelector('input')` 来获取真实的输入框元素,并通过 `inputElement.selectionStart` 来获取光标位置。
再次对之前的错误表示抱歉,并希望这次的修改能够解决问题。谢谢!
阅读全文