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

zerostorm3님의 프로필 이미지
zerostorm3

작성한 질문수

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

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

리덕스 실제 구현시 에러발생

작성

·

189

0

<../reducers/index.js>
[const initialState = {
user: {
isLoggedIn: false,
user: null,
signUpData: {},
loginData: {},
},
post: {
mainPosts: [],
},
};

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

export const logoutAction = (data) => {
return {
type: 'LOG_OUT',
};
};

//action creator 함수 -> 데이터값을 액션하는 함수
//액션 자체는 객체라서 값을 수정못하니 모든케이스마다 객체를 만들어줘야하니 함수로 만들어서
//그때 그때 만드는 것으로한다!!
// const CHANGE_NICKNAME = (data) => {
// return {
// type: 'CHANGE_NICKNAME',
// data,
// };
// };
// CHANGE_NICKNAME('boogicho');

// store.dispatch(changeNickname('mighty tak'));

//이전상태와 액션을 실행했을 떄, 다음상태 두가지를 다 실행하는 함수!
const rootReducer = (state = initialState, action) => {
switch (action.type) {
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,
},
};
}
};

export default rootReducer;
 
<..store/configureStore.js>
import { createWrapper } from 'next-redux-wrapper';
import { createStore } from 'redux';

import reducer from '../reducers';

const configureStore = () => {
const store = createStore(reducer);
return store;
};

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

export default wrapper;
 
 
<터미널 에러 표시>
❯ npm run dev > react-nodebird-front@1.0.0 dev > next Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db ready - started server on http://localhost:3000 error - ./store/configureStore.js Attempted import error: 'createWrapper' is not exported from 'next-redux-wrapper'.
 
처음엔 단순히 리덕스버전 문제인줄 알앗는데,
구글에서도 검색해도 잘 나오지 않고, 문제 이해가 어려워서
질문올립니다.
 
 
 
 
 
 
 

답변 3

1

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

뒤에 유저부분 강의해주신거대로,

switch(action.type){}안에

default: return state; 추가하니 잘 화면 나옵니다!

감사합니다!

0

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

네 방금

 "next-redux-wrapper": "^6.0.2"

으로 버전 6버전으로맞추고 나서 빌딩 안되는 문제는 해결됬습니다.

다만 서버 에러가 나는데, 뒷부분 강의해주시는 유저부분 문제인거같아 한번 다시 해보겠습니다. 

0

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

패키지 설치가 제대로 안 된듯 합니다. node_modules를 지우고 다시 npm i 하세요.

zerostorm3님의 프로필 이미지
zerostorm3

작성한 질문수

질문하기