我在vue组件的数据中定义了这样的对象:
export default {
components: {..}
data: () => {
filter: ({
from: 2017,
to: 2018
}
}),
computed: mapState({
fooObjects: (state) => {
console.log(this.filter) // print undefined
}
}),
...
}
您能告诉我如何在计算属性中访问我的过滤器对象,为什么过滤器未定义?正如您所见,我已经开始了2年的初始化。感谢。
答案 0 :(得分:1)
不要在计算机上使用箭头函数,它们绑定到父上下文,这不会像您期望的那样是Vue实例。您还应该从数据方法返回一个对象。这在以下工作
export default {
components: {..},
data () {
return {
filter: {
from: 2017,
to: 2018
}
}
},
computed: {
fooObjects: function () {
return console.log(this.filter)
}
}
}

答案 1 :(得分:0)
有几件事。首先,您的括号不会从第4
行开始排列。其次,为了访问this.filter
,您的数据方法必须返回一个json对象。你有它返回过滤器。
以下代码可让您访问this.filter
。
export default {
components: {..}
data: () => {
return {
filter: {
from: 2017,
to: 2018
}
}
},
computed: mapState({
fooObjects: (state) => {
console.log(this.filter) // print undefined
}
}),
...
}