在渲染

时间:2017-01-10 17:49:46

标签: reactjs lambda ecmascript-6 arrow-functions tslint

编辑:具体来说,下面的AirBnb示例是否有一些细微差别可以免除Ori Drori评论中的tslint规则/ SO线程?

我正在使用tslint-react,也在关注AirBnb's React style guide

AirBnb的规则“使用箭头函数来关闭局部变量”显示了在纯无状态组件的返回(渲染)中使用的lambda函数。

function ItemList(props) {
  return (
    <ul>
      {props.items.map((item, index) => (
        <Item
          key={item.key}
          onClick={() => doSomethingWith(item.name, index)} // This ok??
        />
      ))}
    </ul>
  );
}

tslint-react的规则“jsx-no-lambda”似乎说这是一件坏事。

  

JSX-NO-拉姆达:   在渲染调用堆栈内创建新的匿名函数(使用函数语法或ES2015箭头语法)可以对抗纯组件渲染。在两个lambda之间进行相等性检查时,React将始终将它们视为不相等的值,并强制组件重新渲染,而不是必要的。

我对这里的最佳做法感到困惑,以及AirBnb的风格指南是否具有免除关注的细微差别。

干杯!

0 个答案:

没有答案
相关问题