일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 빗썸데이터
- 알고리즘 문제 풀이
- es6
- 이진검색
- ES5
- ES차이
- 주식스팸
- 비전공자개발정리
- 자바스크립트표준
- 한국디도스
- 숫자구하기
- 트위터해킹
- HDD와 SSD의 차이
- 공개API
- 퀵정렬
- 네트워크해킹
- CS스터디
- 컴퓨터 논리와 구조
- 데이터분석
- 컴퓨터과학
- 브라우저 작동원리
- 아키네이처
- 줌서비스
- 아마존해킹
- es6문법
- 1일 1로그 100일 완성 IT지식
- ECMA설명
- es3
- 프로세서 속도와 심장 박동수
- API요청
- Today
- Total
개발일지
onClick = useNavigate 실행 순서 오류 / 2개 함수를 실행 할 때는 순서 맞게 정리하기 본문
Uncaught (in promise) TypeError: Cannot read properties of null (reading 'value')
전 포스팅에서 usehistory와 useNavigate를 비교하여 navigate를 사용해야겠다고 작성했었다.
근데 바로 그냥 오류가 나버리죠?
결국에는 onClick에 두개의 함수를 쓰니 작동이 안됐던건줄 알고 포스팅 까지 다했는데 거기서 또 안됐다
해결이 어려워 팀원분에게 물어보니 답변을 주셨다ㅠㅠㅠ 감사합니다
history와는 다르게 navigate는 같이 써놓으면 페이지 이동이 안된다. 정확한 이유를 아직 못찾았지만
예상하기는 히스토리는 바로 넘겨주지만 네비게이트는 넘어갈 페이지와 현재페이지가 연동이 되야 한다는데 로그인 처리를 하고 데이터를 가져오느라 페이지 연동확인이 안되서 넘어가지 않는것 같다.
1. 이유
회원가입 버튼에 만들어둔 signupFB로 파이어베이스에 값을 넣어주고 있었다 근데 어젯밤에 당연히 되니까 navigate를 넣어 페이지이동을 넣고 잠들었는데 회원가입을 만지던 중 firebase에 데이터가 안들어가고 있드라..
2. 확인
그래서 확인 해보니
const navigate = useNavigate();
...
<button onClick={() => {
signupFB();
navigate("/");
}}>회원가입하기</button >
navigate와 주소값을 저렇게 적기만 했는데 데이터가 안들어가고 상관없는 addDoc부분에서 오류가 나더라
그래서 버튼에 문제인가 싶어 버튼을 고쳐보고 navi를 단 후에 오류인것 같아 2개 함수가 가능한지 보다가 함수를 아예 새로 잡아 주소값까지 주는것을 보았다
3. 변경사항
const gohome = () => {
return <useNavigate to="/home" />;
}
...
<button onClick={() => {
signupFB();
gohome();
}}>회원가입하기</button >
gohome이라는 변수에 주소값까지 넣었고 밑에는 gohome();로 signupFB();와 같은 실행함수로 넣어줬다
근데 이래도 안됐다!
그래서 다른 분이 답변해준게 firebase랑 연결되어있어 처리가 되기 전에 페이지 이동하려다보니 오류가 나는것 같으니 회원가입과, 로그인 코드가 끝나는 함수 뒤에다 옮겨보라고 하신다. 해보니 작동된다.. 대박;
항상 코드에 오타나 이게 아니라 다른 함수를 써야하나 생각했는데 진정한 개발자 사고방식 같았다. 실행 순서를 맞춰줘야한다는... async,await도 앞에 있는데 알아보지 못했다 navigate 도 그럴수 있다는걸
그래서 옮겨 보았다 어디다가 옮겼냐!
맨끝부분으로 옮겨갔다 그러니까 작동이 되드라. 실행 순서 차이 onclick을 누르면 두 개의 함수가 바로 실행 되니 로그인이 끝나고 할 수 있게 만들어주는것. 하나 알아 갑니다 감사합니다!
'리액트' 카테고리의 다른 글
비밀번호 확인 2개 인풋 비교하기 (0) | 2022.06.10 |
---|---|
key={index}를 사용하면 안되는 이유 (0) | 2022.06.09 |
redux, Action Creators에 딕셔너리 자리에 변수 하나만??? (0) | 2022.06.07 |
useHistory와 useNavigate의 차이?? 뭘 써야하나? (0) | 2022.06.07 |
JS HTML 리액트 공백이나 띄어쓰기 / margin 스타일 귀찮을 때   (0) | 2022.06.04 |