对array.map的ESLint prefer-arrow-callback

azz*_*z0r 10 javascript ecmascript-6 reactjs eslint

import React from 'react';

export default class UIColours extends React.Component {
  displayName = 'UIColours'

  render() {
    const colours = ['black', 'red', 'white', 'orange', 'green', 'yellow', 'blue', 'darkblue', 'lilac', 'purple', 'darkPurple'];
    return (
      <div className="ui-colours-container row bg-white">
        <div className="col-md-16 col-xs-16 light">
          <div className="color-swatches">
            {colours.map(function(colour, key) {
              return (
                <div key={key} className={'strong color-swatch bg-' + colour}>
                  <p>{colour}</p>
                </div>
              );
            })}
          </div>
        </div>
      </div>
   );
  }
}
Run Code Online (Sandbox Code Playgroud)

12:26错误意外的函数表达式prefer-arrow-callback

我查看了地图文档,找不到多个参数的好例子.

Sco*_*ott 25

因为你有一个匿名函数作为回调,所以发生了ESLint规则,所以它建议你使用箭头函数.要在箭头函数中使用多个参数,您需要用括号包装参数,例如:

someArray.map(function(value, index) {
  // do something
});

someArray.map((value, index) => {
  // do something
});
Run Code Online (Sandbox Code Playgroud)

与往常一样,箭头函数的MDN文档对箭头函数可以使用的变体进行了非常详细的说明.

或者,您可以禁用该ESLint规则或更改它,以便它不会警告命名回调.该ESLint规则的文档是prefer-arrow-callback.


Juh*_*nen 2

map你可以这样重写:

{colours.map(colour => (
  <div key={`colour-${colour}`} className={`strong color-swatch bg-${colour}`}>
    <p>{colour}</p>
  </div>
)}
Run Code Online (Sandbox Code Playgroud)

给定的颜色名称似乎是唯一的,您可以key毫无问题地将它们用作 s 。