Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vuejs从父提供程序组件注入功能组件_Javascript_Vue.js_Inject - Fatal编程技术网

Javascript Vuejs从父提供程序组件注入功能组件

Javascript Vuejs从父提供程序组件注入功能组件,javascript,vue.js,inject,Javascript,Vue.js,Inject,我正在尝试从父“ThemeProvider”组件注入vue中的功能组件,但该功能组件没有获得提供的主题对象 仅当提供程序位于View.vue文件中时,此选项才有效。。。有没有办法做到“父级提供”>“子级注入”或“父级提供”>“子级注入”是唯一的方法 ThemeProvider.vue export default { name: 'ThemeProvider', provide: { theme: { dark: '#222' } }, rende

我正在尝试从父“ThemeProvider”组件注入vue中的功能组件,但该功能组件没有获得提供的主题对象

仅当提供程序位于View.vue文件中时,此选项才有效。。。有没有办法做到“父级提供”>“子级注入”或“父级提供”>“子级注入”是唯一的方法

ThemeProvider.vue

export default {
  name: 'ThemeProvider',

  provide: {
    theme: {
      dark: '#222'
    }
  },

  render (h) {
    return h('div', this.$slots.default)
  }
}
FunctionComponent.vue

 export default {
    functional: true,

    inject: {
      theme: {
        default: () => ({})
      }
    },

    render: (h, { injections, children }) => {
      console.log(injections.theme.dark) // dont exist
      return h('div', children)
    }
  }
View.vue

<template>
 <ThemeProvider>
  <FunctionalComponent />
 </ThemeProvider>
</template>

这不是直观的行为,而是预期的行为。