작성
·
14
·
수정됨
0
안녕하세요.
투두리스트 렌더링하기에서 TodoItem에 key를 넣지 않았을때 웹브라우저에서 에러가 발생하고, 강의 화면에 vscode에서도 보면 해당 소스코드 위치에 Missing "key" prop for element in... 이라고 나오는데, 제 경우에는 소스코드 위치에 Missing "key" prop for element in... 이라는 내용이 나오지 않습니다. Eslint 플러그인도 설치했고,
아래와 같이 설정 했는데, 무슨 차이 때문에 이런 현상이 생기는 걸까요?
rules: {
"no-unused-vars": "off",
"react/prop-types": "off",
},
그래서, 검색을 좀 해보았고 rules에 아래와 같이 내용을 추가해 봤는데도, Missing "key" prop for element in... 이 내용이 나오지 않습니다.
rules: {
"no-unused-vars": "off",
"react/prop-types": "off",
"react/jsx-key": "true",
},
참고로 저의 package.json은 아래와 같습니다.
{
"name": "section08",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"react": "^19.1.1",
"react-dom": "^19.1.1"
},
"devDependencies": {
"@eslint/js": "^9.33.0",
"@types/react": "^19.1.10",
"@types/react-dom": "^19.1.7",
"@vitejs/plugin-react": "^5.0.0",
"eslint": "^9.33.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"globals": "^16.3.0",
"vite": "^7.1.2"
}
}
답변 5
0
안녕하세요 이정환입니다.
보내주신 소스코드를 확인해보았더니 에디터 상에는 정말 오류가 표시되지 않네요, 이는 아마 Vite나 ESLint의 버전 업데이트로 인해 중요하지 않은(앱을 당장 중단시키지는 않는) 오류로 처리되어 에디터 상에는 나타나지 않는걸로 보입니다.
그러나 브라우저 콘솔에서는 아래와 같이 동일한 오류를 확인하실 수 있습니다.
해당 문제를 제보해주셔서 감사합니다. 더 정확한 원인이 파악되면 답글 추가로 남겨드리겠습니다!
0
안녕하세요.
Error Lens를 설치 했는데도 여전히 동작하지 않습니다.
저의 eslint.config.js 파일 전체 내용은 아래와 같고, rules 말고는 건드린 부분이 없습니다.
import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import { defineConfig, globalIgnores } from "eslint/config";
export default defineConfig([
globalIgnores(["dist"]),
{
files: ["**/*.{js,jsx}"],
extends: [
js.configs.recommended,
reactHooks.configs["recommended-latest"],
reactRefresh.configs.vite,
"plugin:react/recommended",
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: "latest",
ecmaFeatures: { jsx: true },
sourceType: "module",
},
},
rules: {
"no-unused-vars": "off",
"react/prop-types": "off",
"react/jsx-key": "true",
},
},
]);
0
안녕하세요 eachan님 이정환입니다.
소스코드 위치에 에러 메세지가 바로 나타나는 기능을 이용하시려면, 우리 강의의 1.2) VSCode 설치하기 챕터의 8분 51초 경에 설명드리고 있는 Error Lens 라는 확장 프로그램을 설치하셔야 합니다.
혹시 설치하셨음에도 안된다면 다시 답글 부탁드립니다 😀
0
안녕하세요, 인프런 AI 인턴입니다. eachan님.
리액트에서 리스트를 렌더링할 때 각 요소에 고유한 key
prop을 제공하는 것은 필수적입니다. key
값은 리액트가 각 요소가 바뀌었는지 여부를 구별하는 데 사용되며, 이를 제공하지 않으면 콘솔에 경고 메시지가 나타날 수 있습니다.
현재 각 요소에 key
prop을 제공하지 않았을 때 VsCode
에서 경고 메시지가 정상적으로 보이지 않는 문제에 대해 설명드리겠습니다.
ESLint 설정 확인:
.eslintrc
또는 .eslintrc.json
)에 올바르게 규칙이 설정되어 있는지 확인합니다.VSCode ESLint 플러그인:
Linting 규칙:
react/prop-types
와 같이 설정된 규칙 외에 react/jsx-key
설정이 필요합니다. 관련된 규칙이 활성화되어 있는지 반드시 확인해 보세요.터미널 및 콘솔:
관련하여 유사한 문제의 경우 해결책으로 다음과 같은 사례를 살펴볼 수 있습니다:
이 주제는 리액트 개발에서 중요한 부분이므로 기회가 되신다면 공식 문서나 커뮤니티 포럼에서 더 많은 정보를 찾으실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요 이정환입니다. 정확한 확인을 위해 전체 프로젝트의 코드를 GitHub 혹은 Google Drive를 통해 링크 형태로 공유해주실 수 있을까요?