일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트표준
- HDD와 SSD의 차이
- 비전공자개발정리
- es3
- API요청
- 1일 1로그 100일 완성 IT지식
- ECMA설명
- 이진검색
- 주식스팸
- 컴퓨터 논리와 구조
- es6문법
- 빗썸데이터
- 컴퓨터과학
- 공개API
- 프로세서 속도와 심장 박동수
- ES5
- 아마존해킹
- 숫자구하기
- ES차이
- 알고리즘 문제 풀이
- 트위터해킹
- 퀵정렬
- 아키네이처
- es6
- CS스터디
- 브라우저 작동원리
- 데이터분석
- 한국디도스
- 네트워크해킹
- 줌서비스
- Today
- Total
개발일지
navigate를 사용했는데 Invalid hook call. error 해결법 본문
리액트 회원가입 부분을 만들면서 navigate로 회원가입 axios/post 후 메인으로 페이지 이동을 넣으려고 작성한 코드이다
// userSlice.js
import { useNavigate } from "react-router-dom";
ㅡㅡㅡㅡㅡㅡㅡ
export const signup = (username, nickname, password) => {
return async function (dispatch) {
const navigate = useNavigate();
try {
const repsonse = await axios.post("http://localhost:5001/signup", {
username: username,
nickname: nickname,
imgPath: null,
password: password,
});
console.log(repsonse);
navigate("/");
} catch (error) {
console.log(error);
}
};
};
import와 navigate변수를 만들어주었고 요청 후 페이지 이동을 했지만 맨 위 사진과 같은 오류가 떴다.
그래서 오류를 찾아보던 중 리액트 버전과 관련이 있다하여 yarn, npm install을 다시 해본뒤 했지만 해결되지는 않았고
당연히 navigate 위치가 맞다고 생각해서 다른 문제가 있나 찾아보았다. 참고블로그에서는 버전문제 또는 함수호출 문제라고 하였고 위치가 다르거나 import 문제인가 했다. 오타와 함수호출시 ()을 작성하지 않은 부분도 있었지만
결론적으로는 axios 요청안에는 navigate를 작성할 수 없었다,
생각해보니 요청을 보낼 때 데이터는 확인 가능하나 컴포넌트가 다르기 때문에 여기서 걸어둔 navi함수가 발동되지 않는다는것을 이해하게 되었다. 버튼이 있는 같은 페이지라면 모를까 연결되는 버튼이 없다.
// Register.js
dispatch(
signup(
id_ref.current.value,
nick_ref.current.value,
pw_ref.current.value,
pwCheck_ref.current.value,
)
);
navigate("/");
};
그래서 Register.js 부분에서 디스패치하는 과정에 navigate를 작성하였고 오류도 없이 말끔하게 넘어갔다.
추가 ㅡㅡㅡㅡ
navigate 대체 해결 부분!! 링크 남깁니다
2. navigate 오류
https://mothercargasoline.tistory.com/110
로그인, 회원가입 구현 어디까지 갔니? Truoble Shooting
아직 와이어프레임이 안나와서 기능 구현에 힘을 실었다. 처음이다 보니 많이 더욱 더 얼탈줄 알았는데 옆에 멘토같은 리더님이랑 코드를 그래도 조금 써봤다고 전에 CRUD할 때 보다는 많이 성장
mothercargasoline.tistory.com
'리액트' 카테고리의 다른 글
redux 코드 사용 관련 팁들. 내가 잘못한 것들에 대한 피드백 (0) | 2022.07.01 |
---|---|
JWT, Access, Refresh Token (0) | 2022.06.30 |
리액트,스프링 axios 연결 CORS 오류 / has been blocked by CORS policy: No 'Access-Control-Allow-Origin' (0) | 2022.06.12 |
비밀번호 확인 2개 인풋 비교하기 (0) | 2022.06.10 |
key={index}를 사용하면 안되는 이유 (0) | 2022.06.09 |