In development, persist application state across hot reloads.

This commit is contained in:
Jason Miller
2018-03-30 16:25:41 -04:00
parent 1dd0366c05
commit d023263f57
2 changed files with 15 additions and 0 deletions

4
global.d.ts vendored
View File

@@ -4,6 +4,10 @@ declare interface NodeModule {
hot: any; hot: any;
} }
declare interface Window {
STATE: any
}
declare namespace JSX { declare namespace JSX {
interface Element { } interface Element { }
interface IntrinsicElements { } interface IntrinsicElements { }

View File

@@ -36,6 +36,17 @@ export default class App extends Component<Props, State> {
enableDrawer = false; enableDrawer = false;
constructor() {
super();
// In development, persist application state across hot reloads:
if (process.env.NODE_ENV === 'development') {
this.setState(window.STATE);
this.componentDidUpdate = () => {
window.STATE = this.state;
};
}
}
@bind @bind
openDrawer() { openDrawer() {
this.setState({ showDrawer: true }); this.setState({ showDrawer: true });