2016-09-24 31 views
0

我遇到了一个与redux-persist-immutable没有补充我的商店的问题,我不确定它为什么会发生。我正在使用基本的redux-persist文档中的"Delay Render Until Rehydration Complete" recipeMy exact code is here.不可改变的状态不会被加载到redux-persist-immutable

它看起来像我的应用程序加载正常,一切正常渲染,但我的store.getState()返回我开始的initialState - 不可变的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') 
); 

回答

0

数字我会在发布问题后的几分钟内找出答案。

看起来像initialState需要使用稍后将使用的键来设置。如果你的initialState是一个空的Map()然后被更新,你将会是SOL。

相关问题