함께해서 더러웠고 - 리액트 첫 프로젝트에서 만난 에러모음(1)

last update: 2021.08.18.WED

리액트 첫 프로젝트에서 만난 에러 모음

함께해서 더러웠고 다신 보지 말자

  • 1) Error: Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead.



  • 2)SyntaxError: Cannot use import statement outside a module
    • 참고 : Cannot use import statement outside a module 에러 해결
    • 원인 : 평소 맥에서 작업하다가 밖에서 코드를 수정할 일이 있어 윈도우 VSCODE로 코드를 실행했더니 저런 에러가 나왔다. package.json파일에 있는 변수 및 설정이 달라서 그런 것 같다.
    • 해결책 : 위의 링크의 설명대로 아래 코드를 package.json에 추가하고 파일을 실행(예 : node Title.js)하면 된다.
        "type": "module"
      
    • 새로운 문제 : 집으로 돌아와 맥에서 같은 방법을 쓰자 렌더링 에러가 난무해서 그냥 코드를 지웠다.



  • 4) %22 문제
    • 참고 : URL-encoding from %00 to %8f
      • 요약 : URL에 인코딩 되는 것이 무엇인지 총 망라된 표이다.
    • 발생원인 : API URL과 KEY를 각각 변수로 따로 두고 합쳤더니, get 요청을 하는 url에 자꾸 %22가 붙어서 주소가 엉망이 되었다.
    • 해결책 : 완전한 해결책은 아니지만 변수를 따로 두지 않고 그냥 하나의 문자열로 썼다.
        const API_URL = "http://www.blahblah.com/12341234123412341234";
      
    • 망한 예 :
        const API_KEY = "12341234123412341234";
        const API_URL = "http://www.blahblah.com/{API_KEY}";
        //결과 : API_URL = http://www.blahblah.com/%22/12341234123412341234";
        //망할놈의 %22
      
    • 정확한 해결책을 더 찾아야 한다.


  • 5) Error: connect ECONNREFUSED 127.0.0.1:80


  • 6) has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    • 참고 : Axios에 헤더 추가하기
    • 참고 :
    • 참고 :
    • 원인 : CORS!!!!!!!
    • 해결책 : 이번 경우는 api get 요청 때 사용한 URL 주소에 오타가 있어서 해프닝으로 끝났다. 하지만 12시간을 날린 해프닝이었다. 이녀석은 언젠가는 다시 만나게 될 에러이니 참고 사이트만 우선 백업해두었다.



  • 8) React Hook useEffect has a missing dependency: 'xxx'. Either include it or remove the dependency array. (react-hooks/exhaustive-deps)
    • 참고 : exhaustive-deps-warning 해결법
      • 요약 : useEffect 관련 문제에 대해 잘 설명하는 좋은 글
    • 원인 및 해결책 : useEffect 내의 함수가 사용하는 변수를 배열(dependency array)에 넣어줘야 한다. 그 밖의 원인 및 해결책은 위의 링크 참고