강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

brmnmusic님의 프로필 이미지
brmnmusic

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

리듀서 쪼개기

combineReducers사용할때 오류가 생겨요

작성

·

519

0

에러는 TypeError: Cannot read properties of undefined (reading 'type') 이렇게 출력이 되고

해당 에러가 난 코드는 reducer/user.js의

const reducer = (state = initialState, action) => {
switch (action.type) {
case 'LOG_IN':

이부분 입니다

user.js, post.js에
if (action === undefined){return state}
를 추가해서 수정하려했지만

TypeError: Cannot read properties of undefined (reading 'isLoggedIn')

이렇게 추가로 오류가 발생합니다

어떻게 수정해야할까요..ㅜㅜ

답변 3

0

brmnmusic님의 프로필 이미지
brmnmusic
질문자

combineReducers를 사용하기전까지(20강 수강까지)는 잘되었으나 해당부분을 사용하자 에러가 생겼습니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

combineReducers 코드도 올려주세요.

brmnmusic님의 프로필 이미지
brmnmusic
질문자

combineReducers 코드 입니다 

강사님과는 다르게 index부분이 회색으로 주석 쳐진것처럼 나와요

import {HYDRATE} from "next-redux-wrapper";
import {combineReducers} from "redux";
import user from "./user";
import post from "./post";
const rootReducer = combineReducers({
index: (state = {},action) =>{
switch (action.type){
case HYDRATE:{
return {...state,...action.payload}
}
default:{
return state
}
}
},
user,
post,
})
export default rootReducer
brmnmusic님의 프로필 이미지
brmnmusic
질문자

brmnmusic님의 프로필 이미지
brmnmusic
질문자

서버쪽 로그가 이게 맞는지는 모르겠으나

이렇게 나옵니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

https://github.com/ZeroCho/react-nodebird/tree/master/ch3/front

이것과 비교해보셔야 할 것 같습니다. 제 생각에는 pages쪽에서도 호출을 잘못했거나 하는 경우가 있을 수 있습니다.

brmnmusic님의 프로필 이미지
brmnmusic
질문자

넵 감사합니다 최후의보루로 가야겠네요ㅜㅜ

0

brmnmusic님의 프로필 이미지
brmnmusic
질문자

제가 강사님 답변을 정확하게 이해하지 못해서 로그인 관련 코드를 올려보겠습니다

LoginForm.js 코드

const LoginForm = () =>{
const dispatch = useDispatch()
const [id, onChangeId] = useInput('')
const [pw, onChangePw] = useInput('')

const onSubmitForm = useCallback(() => {
console.log(id,pw)
dispatch(LoginAction({id,pw}))
},[id,pw])

----------------------------------------------------
user.js 코드

export const LoginAction = (data) => {
return{
type:'LOG_IN',
data:data,
}
}


const
reducer = (state = initialState, action) => {
switch (action.type){
case 'LOG_IN':{
return{
...state,
isLoggedIn: true,
user:action.data
}
}

이렇게 작성하였는데 강의를 돌려봐도 어디가 문제인지 잘 모르겠네요..

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

로그인을 눌렀을 때 action이 undefined되는 것은 맞죠?

brmnmusic님의 프로필 이미지
brmnmusic
질문자

npm run dev를 하면 화면에 Internal Server Error 고 나오면서 콘솔창에 status 500에러라고 나옵니다

TypeError: Cannot read properties of undefined (reading 'type') 이부분은 터미널에서 확했어요

brmnmusic님의 프로필 이미지
brmnmusic
질문자

눌렀을때가 아니라 실행시키면 바로 오류가 생겨요

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

서버 에러라서 서버쪽 에러메시지 확인하셔야 합니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

action이 undefined가 되는 것 자체가 문제인데요. 혹시 dispatch()만 하신 것 아닌가요? log_in 관련 코드쪽에서 찾아보셔야 합니다.

brmnmusic님의 프로필 이미지
brmnmusic

작성한 질문수

질문하기