react
-
[React] "TypeError: n is not a function", "React Router caught the following error during render TypeError: n is not a function" 오류 해결react 2024. 11. 27. 21:47
에러 사진 해결UseEffect에 async/await을 사용하려 한 게 문제였다.UseEffect는 clean-up 함수를 리턴하거나 아무것도 리턴하지 않아야 한다. 그런데 async/await을 붙인 함수는 clean-up이 아닌 프로미스 객체를 리턴하기 때문에 UseEffect에 사용할 수 없다. 따라서 useEffect에 async/await을 사용하려면 안에 함수를 만들고 그 안에서 사용해야 한다!그래야 프로미스 객체를 리턴하지 않게 된다. 수정전useEffect( async () => { // ~ 코드 ~ //}, []); 수정후useEffect(() => { async function a() { // ~코드~// } a();}, []); 관련 링크: http..
-
[React] 'useBlocker must be used within a data router' 오류 해결 / useBlocker 관련 오류 해결react 2024. 11. 26. 10:34
useBlock 기능을 사용하려 했지만 알 수 없는 오류로 인해 애를 먹었다. 오류사진 오류의 원인은 버전 호환이 되지 않았기 때문이었다.useBlock은 react-router 버전6 이전과 이후의 사용코드가 다르다. 따라서 자신이 사용하는 버전에 맞게 사용하도록 하자.현재 나와있는 블로그에는 react-router v6.4 이전의 코드가 대부분이라 오류가 났다. (본인이 사용한 react-router 버전은 7.0.1이다.)버전이 6.4 이후로는 useBlocker가 Data Router 환경에서만 작동하도록 변경되었다.따라서 라우팅을 설정할 때 기존방식인 BrowserRouter 대신 creacteBrowserRouter와 RouterProvider를 사용해야한다. 기존에 사용했던 방식impo..