首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Eslint会用连字符自动为对象属性名称添加一个空格?

为什么Eslint会用连字符自动为对象属性名称添加一个空格?
EN

Stack Overflow用户
提问于 2020-12-08 08:04:50
回答 1查看 106关注 0票数 0

我有这个数据,我想用Vue显示出来:

代码语言:javascript
复制
<script>
export default {
  data() {
    return {
      heroes: [
        {
          response: "success",
          id: "332",
          name: "Hulk",   
          biography: {
            "full-name": "Bruce Banner"
          }
        }
      ]
    };
  }
};
</script>

问题是,当我保存代码时,Eslint为"full-name“添加了额外的空间,从

代码语言:javascript
复制
<h2>{{ hero.biography.full-name }}</h2>

代码语言:javascript
复制
<h2>{{ hero.biography.full - name }}</h2>

当我运行它时,它只显示NaN

在.eslintrc.js中,我添加了"vue/attribute-hyphenation": "off"

代码语言:javascript
复制
module.exports = {
  root: true,
  env: {
    node: true
  },
  extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"],
  parserOptions: {
    parser: "babel-eslint"
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
    "vue/attribute-hyphenation": "off"
  }
};

我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-08 08:28:06

您需要使用方括号语法来访问包含连字符的属性名称。否则,它将被视为减号运算符。

代码语言:javascript
复制
<h2>{{ hero.biography['full-name'] }}</h2>

JavaScript属性名称的常规规则适用于Vue模板表达式。如果属性名称是有效的标识符,则可以使用点表示法。粗略地说,这意味着它可以包含字母数字、下划线和$。对于其他字符,您需要使用方括号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65191252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档