【问题标题】:Immutable state not being loaded in redux-persist-immutable不可变状态未在 redux-persist-immutable 中加载
【发布时间】:2016-09-24 20:08:13
【问题描述】:

我遇到了 redux-persist-immutable 无法为我的商店补水的问题,我不确定为什么会这样。我正在使用来自基本 redux-persist 文档的"Delay Render Until Rehydration Complete" recipeMy 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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-20
      • 2021-09-08
      • 2016-09-20
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多