[Vue warn]: inject() can only be used inside setup() or functional components.
时间: 2023-11-23 16:10:44 浏览: 301
这个警告是由于在Vue 3中,inject()只能在setup()或者函数式组件中使用,如果在模板中使用会触发警告。
解决方法:
1. 将inject()函数移动到setup()中
```
<template>
...
</template>
<script>
import { inject } from 'vue'
export default {
setup() {
const myValue = inject('myValue')
...
}
}
</script>
```
2. 将组件改为函数式组件
```
<template functional>
...
</template>
<script>
import { inject } from 'vue'
export default {
setup(props, { attrs }) {
const myValue = inject('myValue')
...
}
}
</script>
```
注意:如果你想在模板中使用inject()函数,你可以在组件的选项中添加inject属性。这将告诉Vue哪些依赖项应该注入到该组件中:
```
<template>
...
</template>
<script>
export default {
inject: ['myValue'],
...
}
</script>
```
阅读全文