为什么 VS Code 中不再报告 Missing key prop 错误?

use*_*158 5 reactjs eslint visual-studio-code

eslint-plugin-react用于在 JSX 中迭代列表时缺少 prop时在 VS Code 中key抛出警告/错误,但它不再执行此操作。(浏览器控制台中抛出错误。)

缺少keyprop 的代码示例(从 React beta 文档分叉)

import { people } from './data.js';
import { getImageUrl } from './utils.js';

export default function List() {
  const chemists = people.filter(person =>
    person.profession === 'chemist'
  );
  const listItems = chemists.map(person =>
    <li>
      <img
        src={getImageUrl(person)}
        alt={person.name}
      />
      <p>
        <b>{person.name}:</b>
        {' ' + person.profession + ' '}
        known for {person.accomplishment}
      </p>
    </li>
  );
  return <ul>{listItems}</ul>;
}
Run Code Online (Sandbox Code Playgroud)

.eslintrc

{
  "extends": [
    "react-app",
    "plugin:react/recommended"
  ],
  "rules":{
    "react/jsx-key": "error"
  }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,如果没有传递任何值,React 默认情况下使用数组索引key,但 lint 规则可以帮助开发人员在编辑器/IDE 中处理代码。

这是代码沙箱

我尝试了什么?

  • 配置 ESLint 以在缺少 prop 时抛出错误key
  • 尝试将 eslint 依赖项添加到两个devDependencies,dependencies块,希望 Code Sandbox 出现问题
  • 在 VS Code 中本地尝试了类似的设置。
  • 还尝试了新文档中eslint-config-react-app提到的内容(即使它可能在后台使用相同的插件)

ESlint 版本:

"eslint": "8.25.0",
"eslint-config-react-app": "7.0.1",
"eslint-plugin-react": "7.31.10"
Run Code Online (Sandbox Code Playgroud)