Redux에서 @@INIT로 초기 State를 설정하지 않는 것이 좋습니다.
Redux에서 초기 State에 값을 넣을 때는 @ @INIT을 사용하지 않는 것이 좋습니다.
(나중에 조사하면, 안티 패턴인 것 같다)
아래와 같이 초기 State를 @ @INIT 때때로 건네주도록(듯이) 설정하고 있으면,
Production 상태에서 INIT가 스루되고 올바르게 로드되지 않은 것이 판명.
(덧붙여서 REDUX devtools는 @ INIT를 읽고 있기 때문에 발견에 늦었다.)
改善前
activity.js
const initialState = {
likeIDs : [],
hoge:{},
}
function setIdsToState = arr => {
let a = [];
if(Array.isArray(arr)){
arr.map( n=> { a.push(n.id) });
}
return a;
}
const activity = (state: Object = initialState, action: any) => {
switch(action.type){
case '@@INIT': {
const ids = setIdsToState(window._a);
return {
...state,
likeIDs = ids
}
}
}
결국 initialState시에 초기치를 건네주도록(듯이) 개수.
改善後
activity.js
const _ids = { likeIDs = setIdsToState(window._a) };
const initialState = {
..._ids,
hoge:{},
}
function setIdsToState = arr => {
let a = [];
if(Array.isArray(arr)){
arr.map( n=> { a.push(n.id) });
}
return a;
}
Production 모드로 하지 않으면 눈치채지 못했기 때문에, 초조했다. .
하기 기사 참고가 되었습니다.
htps : // 기주 b. 코 m / 레즈 xjs / 레즈 x / 이스에 s / 186
htps : // m / k y / / ms / 869 Ae b7b403 Ae 7 A 8 fd8 A
Reference
이 문제에 관하여(Redux에서 @@INIT로 초기 State를 설정하지 않는 것이 좋습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ikuo00uk/items/b54d1e7721deb9164c09텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)