[Vue warn]: inject() can only be used inside setup() or functional components.
时间: 2023-11-23 18:10:49 浏览: 148
进程注入源码(勿用于非法用途)
5星 · 资源好评率100%
这个警告是在 Vue.js 中使用 `inject` 函数时出现的。通常, `inject` 函数应该在 `setup()` 或函数式组件中使用。如果您在模板中使用 `inject`,则可能会触发此警告。
要解决这个问题,您可以将 `inject` 函数移到 `setup()` 中。如果您需要在模板中使用注入的值,您可以将它们暴露给模板。例如:
```javascript
setup() {
const injectedValue = inject('injectedValue')
return {
injectedValue
}
}
```
然后,在模板中,您可以访问 `injectedValue`:
```html
<template>
<div>{{ injectedValue }}</div>
</template>
```
请注意,如果您仍然需要在非函数式组件中使用 `inject` 函数,您可以通过在组件的 `provide` 选项中提供一个对象来解决此问题。这将使您可以在组件中注入这些值。
阅读全文