다른 상태 트리가 있고 이미 로그인 한 프로덕션 React/Redux 응용 프로그램에 새 번들을로드하고 싶습니다. 이러한 사용자가 로그 아웃하도록하여 상태 트리를 재설정 할 수 있습니다.프로덕션에서 기존 Redux 저장소에 버전 번호 유지
노드에서 버전을 전달하여 내 접근
, 내가 가진 (또는없이) 버전 키 상태 트리로 version: {latest: VERSION, current: null}
키를 삽입 할 저장소를 구성 할 수 있습니다. 로컬 저장소에서 사용자의 기존 상태를로드 할 때 (사용자가 노드 서버에 다시 연결할 때만 발생 함) 상태 트리에이를 "납치"할 수있었습니다.
const {VERSION} = process.env;
const preloadedState = loadStateFromLocalStorage();
const browserVersion = (preloadedState.version && preloadedState.version.current) || null;
const store = createStore(
rootReducer,
Object.assign({}, preloadedState, {version: {latest: VERSION, current: browserVersion}}),
middleware
);
current
버전 대 latest
버전 (가 인증 후 마운트 할 수있는 첫 번째 구성 요소이기 때문에) 그때 내 AppContainer
구성 요소에서 확인할 수 있습니다.
class AppContainer extends React.Component {
componentDidMount() {
this.props.dispatch(checkForUpdates());
}
componentDidUpdate() {
this.props.dispatch(checkForUpdates());
}
render() {
return <App {...this.props} />
}
}
checkForUpdates()
는 사용자가 계속 로그 아웃해야 함을 나타냅니다 모달 메시지를 표시합니다. 로그 아웃하면 전체 상태가 {version: {latest: VERSION, current: VERSION}}
으로 설정됩니다.
이 방법은 내가 업그레이드의 (a)에 통보 사용자에게 기본적으로 이는 달성하기 위해 시도하고있는 무슨 달성에 지나치게 복잡한 것 (b)는 사용자 출력/퍼지 상태 (c)에 로그인 새, 초기 상태를로드 업데이트 된 JS 번들에서.
엣지 케이스의 경우 어떻게 사용합니까? 상태 트리에 버전 번호를 저장하는 것이 합리적인 방법일까요?
DOM 트리가 현재 세션을 반영하고 상태 트리의 항목 (예 : 모달 기능)을 활용해야합니다. – Himmel