Redux의 강력한 상태 관리를 위해서는 특정 시나리오에서 스토어를 초기 상태로 재설정하는 것이 중요합니다. 이렇게 하면 애플리케이션에 정확한 최신 정보가 반영됩니다.
다음 이벤트 순서를 고려하세요.
이 경우 캐시된 데이터는 사용자 A에 연결된 상태로 유지되어 데이터 불일치가 발생할 수 있습니다. 이 문제를 해결하려면 첫 번째 사용자가 로그아웃할 때 Redux 스토어를 초기 상태로 재설정해야 합니다.
한 가지 효과적인 접근 방식은 애플리케이션의 루트 리듀서를 수정하는 것입니다. 루트 리듀서는 모든 작업을 처리하기 때문에 로그아웃 동작과 같은 특정 동작을 받으면 초기 상태를 반환하도록 지시할 수 있습니다.
const appReducer = combineReducers({ /* Your application's top-level reducers */ }); const rootReducer = (state, action) => { return appReducer(state, action); };
그러나 루트 리듀서를 재설정하려고 합니다. 로그아웃 작업이 트리거될 때만 가능합니다. 이를 달성하기 위해 rootReducer 내에 조건문을 정의하여 로그아웃 작업을 확인하고, 발생하면 정의되지 않은 값을 반환할 수 있습니다.
const rootReducer = (state, action) => { if (action.type === 'USER_LOGOUT') { return appReducer(undefined, action); } return appReducer(state, action); };
이제 로그아웃 작업이 전달되면 appReducer가 호출됩니다. 첫 번째 인수로 undefound를 사용하면 모든 리듀서가 초기 상태로 재설정됩니다.
Redux-Persist를 사용하는 경우 상태 복사본이 유지되므로 저장소를 정리해야 할 수도 있습니다. 아래 코드는 이를 달성하는 방법을 보여줍니다.
const rootReducer = (state, action) => { if (action.type === 'USER_LOGOUT') { storage.removeItem('persist:root'); return appReducer(undefined, action); } return appReducer(state, action); };
이 코드는 스토리지 엔진에서 저장된 상태를 제거하여 사용자가 로그아웃할 때 새로 시작할 수 있도록 합니다.
위 내용은 사용자 로그아웃 후 애플리케이션 무결성을 유지하기 위해 Redux Store 상태를 어떻게 재설정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!