首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有找到注入“设置”。Vue组合API提供和注入问题

没有找到注入“设置”。Vue组合API提供和注入问题
EN

Stack Overflow用户
提问于 2022-09-25 16:54:46
回答 1查看 105关注 0票数 1

我试图使用vues提供和注入传递一个反应性对象,我得到了[Vue warn]: injection "settings" not found.警告,当我注销设置时,它返回为未定义的设置。

我在这里做错什么了?

我做了一个快速的小CodeSandbox来复制这个问题。

如果有人知道为什么会这样,请告诉我!

干杯!

Test.vue

代码语言:javascript
复制
<script>
import { defineComponent, provide, reactive } from "vue";

export default defineComponent({
  setup() {
    const settings = reactive({
      theme: "light",
      color: "#F092AD",
      id: 69,
    });
    provide("settings", settings);
    return {};
  },
});
</script>

App.vue

代码语言:javascript
复制
<template>
  <pre>{{ settings }}</pre>
</template>

<script>
import { defineComponent, inject } from "vue";

export default defineComponent({
  setup() {
    const settings = inject("settings");
    console.log(`settings → `, settings);
    return { settings };
  },
});
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-25 17:29:52

只能使用“提供函数”向组件的后代提供数据。

在您的示例中,组件不是后代,因此会收到警告,因为没有提供任何信息。

您可以使用应用程序级提供如下所示:

代码语言:javascript
复制
app.provide(/* key */ 'message', /* value */ 'hello!')

或者是一些全球性的国家管理工具,比如皮尼亚或者vuex。

请看一看码箱或代码片段:

代码语言:javascript
复制
const { reactive, provide, inject } = Vue
const app = Vue.createApp({
  setup() {
    const msg = inject("message");
    const settings = reactive({
      theme: "light",
      color: "#F092AD",
      id: 69,
    });
    provide("settings", settings);
    return { msg };
  },
})
app.component('child', {
  template: `<pre><test /></pre>`,
})
app.component('test', {
  template: `<pre>{{ settings }}</pre>`,
  setup() {
    const settings = inject("settings");
    return { settings };
  },
})
app.provide(/* key */ "message", /* value */ "hello!");
app.mount('#demo')
代码语言:javascript
复制
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<div id="demo">
  <pre>{{ msg }}</pre>
  <child />
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73846283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档