🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

redux 설치 후에 자꾸 internal server error가 뜨네요 ㅜㅜ

22.02.20 23:34 작성 조회수 258

0

이런 에러가 뜨는데 구글링해서 봐도 어떤 부분이 문제가 되는지 잘 모르겠습니다.. ㅜㅜ

▼ configureStore.js 

import {createWrapper} from 'next-redux-wrapper'
import { createStore } from 'redux';

import reducer from '../reducers/'

const configureStore = () =>{
    const store = createStore(reducer);
    store.dispatch({
        // 얘를 디스패치 하는 순간
        // type과 data가 reducer로 전달이 되고,
        // 다음 state로 바뀌게 됨.
        type : 'CHANGE_NICKNAME',
        data : 'jihani'
    })
    return store
}

const wrapper = createWrapper(configureStore,{
        debug : process.env.NODE_ENV === 'development',
});

export default wrapper

▼ reducers/index.js

import { HYDRATE } from "next-redux-wrapper"

const initialState = {
    // 이걸 작성하려면 초기데이터 구조를 어느정도 잡아놓고 있어야 함.
    user : {
        isLoggedIn : false,
        user : null,
        signUpData : {},
        loginData : {},
    },
    post : {
        mainPosts : [],
    }
}

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

export const logoutAction = () =>{
    return {
        type : 'LOG_OUT',
    }
}
// 1. state를 바꾸고 싶을 때마다 action을 만들고,
// 만들어진 action을 dispatch할 수 있게 된다. ===> 이 말의 뜻은..?!
// const changeNickname = {
//     type : 'CHANGE_NICKNAME',
//     data : 'jihani'
// }

// 3. aync action creater
//

// 2. 매번 state값을 바꿔줄 수도 있는 부분은
// 함수로 뽑아내서 동적데이터 집어넣어서 처리할 수 있음!
// action creater
const changeNickname = (data) =>{
    return {
        type : 'CHANGE_NICKNAME',
        // 데이터는 동적으로 처리하기
        data,
    }
}

changeNickname('Jiphago')
StorageEvent.dispatch(changeNickname('쟈니쟈니'))

// (이전상태, 액션) => 다음 상태
const rootReducer = (state = initialState, action) =>{
    switch(action.type){
        case HYDRATE :
        return {
            ...state,
            ...action.payload
        }
        case 'LOG_IN' : {
            return {
            ...state,
            user : {
                ...state.user,
                isLoggedIn : true,
                user : action.data,
            }
         };
        }
        case 'LOG_OUT' : {
            return {
            ...state,
            user : {
                ...state.user,
                isLoggedIn : false,
                user : null
            }
            }
        }
        default :
            return state
    }
}

export default rootReducer;

답변 1

답변을 작성해보세요.

0

 

StorageEvent.dispatch(changeNickname('쟈니쟈니'))
가 들어있네요. store이겠죠?

와...진짜 감사합니다...에러코드 좀 더 신경써서 봐야겠네요 

채널톡 아이콘