강의

멘토링

커뮤니티

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

호롤롤로스님의 프로필 이미지
호롤롤로스

작성한 질문수

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

미들웨어와 리덕스 데브툴즈

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

작성

·

299

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이겠죠?

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

호롤롤로스님의 프로필 이미지
호롤롤로스

작성한 질문수

질문하기