【发布时间】:2016-09-24 20:08:13
【问题描述】:
我遇到了 redux-persist-immutable 无法为我的商店补水的问题,我不确定为什么会这样。我正在使用来自基本 redux-persist 文档的"Delay Render Until Rehydration Complete" recipe。 My exact code is here.
看起来我的应用程序正确加载并且一切都正确呈现,但我的 store.getState() 返回我开始使用的初始状态 - 不可变的 Map() - 而不是我在上一个会话中使用的任何值。我错过了什么吗?我也在下面添加了相关代码。
import React from 'react';
import { Component } from 'react';
import ReactDOM from 'react-dom';
import {compose, createStore} from 'redux';
import {getStoredState, persistStore, autoRehydrate, createPersistor} from 'redux-persist-immutable';
import {Provider} from 'react-redux';
import reducer from './reducer';
import WinTracker from './components/WinTracker';
// hotmodule reloading fix
if (module.hot) {
module.hot.accept();
}
require('./normalize.css');
require('./skeleton.css');
require('./style.css');
const store = createStore(reducer, undefined, autoRehydrate());
class AppProvider extends Component {
constructor() {
super()
this.state = { rehydrated: false }
}
componentWillMount() {
persistStore(store, {}, () => {
this.setState({ rehydrated: true })
})
}
render() {
if(!this.state.rehydrated){
return <div>Loading...</div>
}
return (
<Provider store={store}>
<WinTracker />
</Provider>
)
}
}
ReactDOM.render(
<AppProvider />,
document.getElementById('app')
);
【问题讨论】:
标签: javascript reactjs redux immutable.js