missing in props validation 이라는 처음 보는 에러가 나타났다. eslint에서 일어나는 문제인 것 같다. props를 전달해주다가 나온 에러인데 내가 봤을 땐 코드에는 별다른 문제가 없는 것 같다. chatGPT를 잘 쓰지 않지만 이번 기회에 이 에러가 뭔지 한 번 물어보았다. 아래는 답변 내용. The error message "missing in props validation" indicates that there is a missing prop validation for the 'MainCarousel' component. In React, it is good practice to validate the props passed to a component to ensure th..
File 'X 'not found. The file is in the program because: Matched by include pattern './src' in the program because : ... 아무것도 건드리지 않았는데 tsconfig.json 파일의 첫 번째 줄 { 하나만 있는 부분에 에러가 났다. 인터넷을 찾아보니 vscode를 껐다 켜거나 src 폴더에 ts파일을 추가해보라고...(https://velog.io/@heony/tsconfig.json-input-error) 실제로 vscode를 껐다 켜니 바로 없어졌다... 조금 허무하지만(?) 나중에 다시 찾게 될 수도 있으니 적어놓는다.
모달로 뜨는 작은 검색창을 만들던 중 typescript를 사용해 set state를 보내려고 하니 에러가 났다. const [miniSearch, setMiniSearch] = useState(false); 보내려 한 것은 useState의 setMiniSearch 부분이다. 처음엔 props 받는 컴포넌트 파일에 아래와 같이 setMiniSearch 타입을 miniSearch와 똑같이 boolean으로 지정했더니 에러 문구가 바뀌었다. 'Dispatch'타입은 boolean에 할당할 수 없다고 친절하게 타입을 알려준다. 아래와 같이 props 받는쪽에서 타입을 Dispatch으로 바꾸면 에러 해결. Dispatch, SetStateAction은 import해와야 한다.
Type 'X' is not assignable to type... Property 'X' does not exist on type 'IntrinsicAttributes' 다른 컴포넌트로 props를 전달하려 하니 이런 에러가 떴다. 인터넷을 좀 뒤지면서 아래 사진처럼 props 전달 받는 부분을 이래저래 바꿔서 넣어보기도 하고 type지정을 따로 빼서 해주기도 했는데 아무리해도 소용이 없었다. 인터넷 뒤지길 그만두고 이전에 봤던 typescript관련 영상 중 관련 내용이 있을까 싶어 뒤지다가 해답을 찾았다. typescript를 사용할 때 컴포넌트를 리턴하는 경우에 React.FC 라는 타입을 지정해줄 수 있는데 이렇게 리액트 펑션 컴포넌트를 사용할 때에는 props를 전달 받을 때 제네릭 지정이 필..
Expected an assignment or function call and instead saw an expression onClick 함수 안의 삼항연산자가 true 일 때 두 가지 기능을 수행하게 하려 했더니 오류가 생겼다. 삼항연산자 안에서 두 가지 이상의 기능을 하게 하려면, 괄호로 묶고 쉼표로 연결해주면 된다. 똑바로 했는데 오류가 생겨 이것저것 시도하다 아래처럼 return()으로 감싸주니 해결되었다. 함수에서 (), {} 등의 사용이 어렵지만 잘 안 되면 한 번쯤 고려할 필요가 있다.
에러 문구는 뜨지 않지만 이미지가 보이지 않는다. img 태그의 src에 바로 이미지 주소를 넣어준 것이 문제였다. 리액트에선 컴포넌트 안에 바로 이미지 링크 적으면 안 된다. 이미지는 상단에 import해서 사용하기. 아래와 같이 해결.