【发布时间】:2019-11-18 05:10:58
【问题描述】:
我正在尝试将计算属性设置为 Vue.js 中子组件的道具。
这是组件代码(Here's the full (not) working example)的摘录:
<div id="app">
<show-me :title="aTitle"></show-me>
</div>
const ShowMe = {
data() {
return {
_title: null
}
},
computed: {
title: {
set: function(val) {
this._title = val;
},
get: function() {
return this._title;
}
}
},
template: `
<div>
should display title: {{title}} <br/>
but instead typeof title: {{typeof title}}
</div>`
};
const vm = new Vue({
el: '#app',
data: {
aTitle: 'A Title'
},
components: {
'show-me': ShowMe
}
});
在运行示例时,模板中组件的标题值未定义。它非常简单明了,我不明白为什么它不起作用。
【问题讨论】:
-
看起来你的组件应该只需要定义一个
titleprop(即props: ['title'])。您不需要_title数据属性或title计算属性 -
至于为什么使用计算属性:它是从更大的上下文中摘录的,这只会使示例复杂化。关于可重现的示例:我的问题中包含的 codepen 链接是否不起作用?又来了:codepen.io/mikekastner/pen/XWWoRZv
-
在这种情况下,您的简化太过分了。就目前而言,您对计算属性的使用没有意义。是的,您的链接有效,但问题应包含所有必需的信息。见stackoverflow.com/help/how-to-ask
-
我真诚地道歉,我以如此草率和轻率的方式发布了我的问题。它绝不是为了过于简单化,也不是为了没有意义。我真的很抱歉,我希望我能弥补我的错误。既然这是不可能的,剩下我要做的就是尝试在未来提出更好的问题并请求宽恕。
-
无需道歉,很高兴您找到了合适的答案。
标签: javascript vue.js