【问题标题】:Can't access data variable inside watcher, inside .map()无法访问观察者内部的数据变量,内部.map()
【发布时间】:2018-01-14 07:03:35
【问题描述】:

我的根看起来像这样。我已经在 data 和 watch 中定义了类型和历史变量,我试图访问另一个变量而不是我正在观看的变量。尝试在.map() 之外访问历史变量可以,但是在.map() 内部使用它会返回undefined

new Vue({
  el: '#root',

  data: {
     types: {},
     history: {}
  }

  watch: {
     types: {
         handler(obj) {
            console.log(this.history) // works

            types.map(function(val) {
               console.log(this.history) // undefined
            })
         }
     }
  }

}

【问题讨论】:

  • 你需要使用 es6 语法,尝试types.map((val) => {...}) 假设你正在使用 webpack 或其他东西来编译你的 JS

标签: vue.js vuejs2 array.prototype.map


【解决方案1】:

因为您使用的是 CDN,所以您需要将 this 绑定到您的函数。请尝试以下操作:

 types.map(function(val) {
     console.log(this.history)
 }).bind(this);

【讨论】:

  • 我试过types.map((val) => {...}},效果很好。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多