【问题标题】:How to access data from computed property Vue.js如何从计算属性 Vue.js 访问数据
【发布时间】:2017-08-09 16:03:30
【问题描述】:

我正在使用 Vue.js,当我尝试从计算属性中的数据访问变量时,它返回 undefined。 代码如下:

    <script>
     export default {
       name: 'app',
       data: () => {
         return {
           lang: 'sp'
         }
       },
       computed: {
         langEn: () => this.lang === 'en',
         langSp: () => this.lang === 'sp'
       }
     }
    </script>

这是一个 NPM 项目。在.vue 文件中。也许这样使用时它的行为会有所不同?

感谢您的帮助

【问题讨论】:

    标签: javascript node.js vue.js vuejs2 vue-component


    【解决方案1】:

    这是一个很常见的“陷阱”。

    在定义计算时不要使用粗箭头。

    当您使用粗箭头定义计算、方法或数据时,您会在词法上捕获 this,它将指向包含范围(通常为 window 或未定义)而不是您的 Vue。

    <script>
     export default {
       name: 'app',
       data() {
         return {
           lang: 'sp'
         }
       },
       computed: {
         langEn(){return this.lang === 'en'},
         langSp(){return this.lang === 'sp'}
       }
     }
    </script>
    

    【讨论】:

    • 谢谢您,先生,这为我节省了大量的谷歌搜索时间
    • 如果您的变量以 _ 或 $ 开头,您可以像这样访问您的变量:this.$data._name
    猜你喜欢
    • 2018-03-02
    • 2019-02-22
    • 2021-07-27
    • 2021-03-13
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2018-01-14
    • 2019-02-23
    相关资源
    最近更新 更多