javascript - 使用 create-react-app 创建应用程序后,数组中的元素缺少 "key"属性

标签 javascript reactjs eslint create-react-app

我目前正在使用 create-react-app 创建一个新的 React 应用程序。之后我安装了扩展插件的 eslint:react/recommended 和 google。两周前,我做了同样的事情,没有遇到任何问题,但自 2 天以来,我现在在每个 html 行的 index.tsx 和 App.tsx 文件中收到“数组中元素缺少“key” Prop ”错误。

index.tsx

import './index.css';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import reportWebVitals from './reportWebVitals';

ReactDOM.render(
    <React.StrictMode>
      <App /> <!-- Here I get a missing key prop error -->
    </React.StrictMode>,
    document.getElementById('root'),
);

App.tsx

import './App.css';
import React from 'react';
import logo from './logo.svg';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.tsx</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

在 App.tsx 中,我在 <div className="App"></div> 内的所有行上收到缺少 key prop 错误。

我不知道为什么会收到此错误,但删除了 plugin:react/recommended从 .eslintrc.yml 删除错误。可能是因为该规则集中应用了react/jsx-key规则。

我还尝试删除 eslintConfig阻止 frmo package.json

额外信息

版本

  • 节点:16.14.0
  • Npm:8.5.2

package.json

{
...
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.2",
    "@testing-library/react": "^12.1.3",
    "@testing-library/user-event": "^13.5.0",
    "@types/jest": "^27.4.1",
    "@types/node": "^16.11.26",
    "@types/react": "^17.0.39",
    "@types/react-dom": "^17.0.11",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "5.0.0",
    "typescript": "^4.5.5",
    "web-vitals": "^2.1.4"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^5.12.1",
    "@typescript-eslint/parser": "^5.12.1",
    "eslint": "^8.9.0",
    "eslint-config-google": "^0.14.0",
    "eslint-plugin-react": "^7.29.0"
  }
}

.eslintrc.yml

env:
  browser: true
  es2021: true
extends:
  - plugin:react/recommended
  - google
parser: '@typescript-eslint/parser'
parserOptions:
  ecmaFeatures:
    jsx: true
  ecmaVersion: latest
  sourceType: module
plugins:
  - react
  - '@typescript-eslint'
rules: {
  require-jsdoc: 0
}

知道这里发生了什么以及如何解决这个问题。

最佳答案

更新:该问题已在 v7.29.1 中修复.


这是来自新版本 (7.29.0) 中插件 eslint-plugin-react 的规则 react/jsx-key 的错误。

已举报here .

您可以将 eslint-plugin-react 版本降级至 7.28.0,直到问题得到解决。

关于javascript - 使用 create-react-app 创建应用程序后,数组中的元素缺少 "key"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71267194/

相关文章:

javascript - 如何在VsCode上的Vue项目中添加eslint规则到prettier

javascript - TSLint。最大语句规则 - 可用吗?

javascript - 如何从 React 中的购物车中删除两个冲突的 ID?

javascript - 评估 JavaScript 语句中的一个特定函数

reactjs - Ant 设计 DatePicker 的形式

python - Flask 和 React 路由

eslint - 无 undef 忽略模式

javascript - Javascript 缺少什么?

javascript - 如何在 react 中缓存/保存图像并显示它们?

javascript - React html 可定制样式