redux-persist를 쓰게 된다면...
참고로 저는
redux-persist
를 사용하는 것을 권장하지 않습니다. (그냥 싫은 느낌...?😅)
왜 사용하고 있나?
- 파트너 서비스 중 *포스트를 임시 저장하는 기능이 있어 사용하게 되었다.
- 알아보기 편하게 포스트라는 키워드를 사용하였습니다.
문제점
- redux 쪽 로직을 수정할 경우 기존에 배포된 앱에서 레거시 redux state와의 충돌
- 그래서 버전 관리가 필요하다.
그래서 어떻게 만들었나?
persistConfig
설정을 바꾸면 된다.
const persistConfig: PersistConfig<any> = {
version: VERSION,
key: 'root',
storage,
whitelist: [...], // optional
migrate: (prevState) => {
if (!!prevState) {
let state: PersistedState;
if (prevState!._persist.version !== VERSION) {
state = {
_persist: {
rehydrated: true,
version: VERSION,
},
};
} else {
state = prevState;
}
return Promise.resolve(state);
}
return Promise.resolve(prevState);
},
};
VERSION
은 상수로 관리를 하면 된다.
// NOTE: 배포할 때마다 버전 올리기
const VERSION = 2.1;
prevState!._persist.version !== VERSION
- 이런 식으로 하면 기존에 localStorage에 있는 값을 날리고 새로운 값을 넣는다.
Author And Source
이 문제에 관하여(redux-persist를 쓰게 된다면...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ppby/redux-persist-쓸만하게-써보자
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- 알아보기 편하게 포스트라는 키워드를 사용하였습니다.
- redux 쪽 로직을 수정할 경우 기존에 배포된 앱에서 레거시 redux state와의 충돌
- 그래서 버전 관리가 필요하다.
그래서 어떻게 만들었나?
persistConfig
설정을 바꾸면 된다.
const persistConfig: PersistConfig<any> = {
version: VERSION,
key: 'root',
storage,
whitelist: [...], // optional
migrate: (prevState) => {
if (!!prevState) {
let state: PersistedState;
if (prevState!._persist.version !== VERSION) {
state = {
_persist: {
rehydrated: true,
version: VERSION,
},
};
} else {
state = prevState;
}
return Promise.resolve(state);
}
return Promise.resolve(prevState);
},
};
VERSION
은 상수로 관리를 하면 된다.
// NOTE: 배포할 때마다 버전 올리기
const VERSION = 2.1;
prevState!._persist.version !== VERSION
- 이런 식으로 하면 기존에 localStorage에 있는 값을 날리고 새로운 값을 넣는다.
Author And Source
이 문제에 관하여(redux-persist를 쓰게 된다면...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ppby/redux-persist-쓸만하게-써보자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)