首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Eslint围绕箭头体的意外块语句;在=>之后立即移动返回的值

Eslint围绕箭头体的意外块语句;在=>之后立即移动返回的值
EN

Stack Overflow用户
提问于 2018-10-03 23:19:18
回答 7查看 69.6K关注 0票数 36

编译Unexpected block statement surrounding arrow body; move the returned value immediately after the =>失败了

文件:

代码语言:javascript
运行
复制
{
    this.state.items.map((item) => {
       return (
         <div key={item}>
             <a href={item.mainContact.phoneHref + item.mainContact.phone}>
                <i className="fa fa-phone" />
                <strong>{item.mainContact.phone}</strong>
              </a>
          </div>
        );
    })
}

任何能帮我理解错误的人都会很棒。

谢谢

更新

我的.eslintrc.json文件:

代码语言:javascript
运行
复制
{
  "env": {
    "browser": true,
    "jest": true
  },
  "extends": ["airbnb"],
  "parser": "babel-eslint",
  "rules": {
      "class-methods-use-this": 0,
      "react/jsx-filename-extension": [
          "error",
          {
            "extensions": [".js", ".jsx"]
          }
      ]
  }
}

这是我的devDependencies从package.json

代码语言:javascript
运行
复制
"devDependencies": {
  "babel-eslint": "^9.0.0",
  "babel-loader": "^8.0.2",
  "eslint": "^5.6.1",
  "eslint-config-airbnb": "^17.1.0",
  "eslint-loader": "^2.1.1",
  "eslint-plugin-import": "^2.14.0",
  "eslint-plugin-jsx-a11y": "^6.1.1",
  "eslint-plugin-react": "^7.11.1",
  "json-loader": "^0.5.7",
  "react-html-parser": "^2.0.2",
  "react-transition-group": "^2.4.0",
  "webpack-cli": "^3.1.1"
},
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2018-10-03 23:39:00

如果使用箭头函数,则在返回值时有两个语法选项:

  1. () => {返回某物}
  2. () =>表达式

在第二种情况下,只需编写自动返回的表达式。给出错误的eslint规则告诉您,如果您只有一个表达式,您可以移除大括号并直接返回表达式,如下所示:

代码语言:javascript
运行
复制
{
    this.state.items.map((item) => (
         <div key={item}>
             <a href={item.mainContact.phoneHref + item.mainContact.phone}>
                <i className="fa fa-phone" />
                <strong>{item.mainContact.phone}</strong>
              </a>
          </div>
        )
    );
}
票数 59
EN

Stack Overflow用户

发布于 2021-08-04 08:48:54

只需删除返回()函数并将整个块放入如下函数

代码语言:javascript
运行
复制
{
    this.state.items.map((item) => (
         <div key={item}>DATA</div>
    )
}

这里是它如何工作的例子:

代码语言:javascript
运行
复制
() => { return <div key={item}>DATA</div>}

因此,在移除返回函数之后,它将像这样工作。

代码语言:javascript
运行
复制
() => (<div key={item}>DATA</div>)

代码语言:javascript
运行
复制
() => yourState
票数 6
EN

Stack Overflow用户

发布于 2018-10-03 23:38:24

您正在使用airbnb eslint预设

如果只返回一个对象,则强制执行箭头函数不使用大括号。

将您的代码更改为此,它应该编译

代码语言:javascript
运行
复制
this.state.items.map((item) => (<div key={item}>
     <a href={item.mainContact.phoneHref + item.mainContact.phone}>
        <i className="fa fa-phone" />
        <strong>{item.mainContact.phone}</strong>
      </a>
  </div>)
)

有关此规则,请参阅文档。

查看airbnb回购中配置的位置

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

https://stackoverflow.com/questions/52636910

复制
相关文章

相似问题

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