javascript - 组件中的数据对象未定义

标签 javascript vuejs2 vue-component

我在 vue 组件的数据中定义了对象,如下所示:

export default {
  components: {..}
  data: () => {
    filter: ({
      from: 2017,
      to: 2018
    }
  }),
  computed: mapState({
    fooObjects: (state) => {
      console.log(this.filter) // print undefined
    }
  }),
  ...
}

你能告诉我如何访问计算属性中的过滤器对象以及为什么过滤器未定义吗?正如你所看到的,我在开始时已经初始化了 2 年。谢谢。

最佳答案

不要在计算上使用箭头函数,它们绑定(bind)到父上下文,这不会是您期望的 Vue 实例。您还应该从数据方法返回一个对象。这在下面工作

export default {
  components: {..},
  data () {
    return {
      filter: {
        from: 2017,
        to: 2018
      }
    }
  },
  computed: {
    fooObjects: function () {
      return console.log(this.filter)
    }
  }
}

关于javascript - 组件中的数据对象未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49412237/

相关文章:

javascript - XHR2 文件传输。在 `progress` 事件处理程序期间访问二进制数据

vue.js - 在 VueJS 组件中导入使用 getElementById 的模块

javascript - 是否可以将组件作为 Prop 传递并在 Vue 的子组件中使用它?

npm - Vue 监听 Vuex 提交?

javascript - 结合不同变量的两个 if 语句

javascript - javascript 中的 POST 请求失败,但可以在 fiddler 中看到成功的响应

javascript - 内部具有多个 promise 的异步 javascript 函数返回一个最终结果

javascript - 如何在Vue中特定组件的范围内定义 `setInterval`?

javascript - 如何让vue中的元素只有准备好后才渲染?

javascript - vue3 isCustomElement 正在将组件检测为 vue 组件