我想将provide
和inject
传递给“页面部分”组件,该组件可以使用slot
递归包含自身。
目标是让这些“页面部分”组件中的每一个在其余传递的id(由id
分隔)之后传递其/
连接,以创建所有的路径包含组件。
其中一些“页面部分”也可能包含其他类型的组件。
这是我尝试失败的原因:
Vue.component('text-input', {
props: ['text', 'id'],
template: '<input type="text" :value="text"',
inject: ['sectionPath']
});
Vue.component('page-section', {
props: ['id'],
template: '<div><slot></slot></div>',
inject: {
sectionPath: { default: '/' }
},
provide: {
sectionPath: this.sectionPath + '/' + this.id
}
}
});
答案 0 :(得分:1)
您可以定义为prop。
,而不是在开头注入你需要使用函数来提供我相信的上下文。
Vue.component('text-input', {
props: ['text', 'id'],
template: '<input type="text" :value="text" />',
inject: ['sectionPath']
});
Vue.component('page-section', {
template: '<div><slot></slot></div>',
props: {
id: {
type: String,
required: true
}
sectionPath: {
type: String,
required: true,
default: '/'
}
}
provide () {
return {
sectionPath: this.sectionPath + '/' + this.id
}
}
});
&#13;