【问题标题】:Adding persistence to react redux immutable web app添加持久性以响应 redux 不可变 Web 应用程序
【发布时间】:2018-02-19 20:28:26
【问题描述】:

我正在尝试向我的 redux 商店添加持久性,我在我的 web 应用程序中使用 Immutable.js。我看过以下库:https://github.com/rt2zz/redux-persisthttps://github.com/rt2zz/redux-persist-immutable 我想知道如何在我的应用程序的上下文中创建持久性和存储,请参阅以下config-store.js

import rootReducer from '../reducers'
import {
  createStore,
  compose,
  applyMiddleware
} from 'redux'
import thunk from 'redux-thunk'

export default (initialState) => {
  return createStore(
    rootReducer,
    initialState,
    compose(
      applyMiddleware(thunk),
      window.devToolsExtension ? window.devToolsExtension() : f => f
    )
  );
};

还有我的index.js

import React from 'react';
import {render} from 'react-dom';
import './index.css';
import App from './App';
import {Provider} from 'react-redux';
import configureStore from './store/configure-store';
import registerServiceWorker from './registerServiceWorker';

const store = configureStore();

render(
   <Provider store={store}>
     <App />
   </Provider>,
  document.getElementById('root')
)
registerServiceWorker();

【问题讨论】:

  • 您在寻找什么功能?只是为了让您的商店离线可用?
  • 是的,然后在刷新时重新补水

标签: javascript reactjs persistence immutability immutable.js


【解决方案1】:

从本地存储中加载持久状态。

if (localStorage.getItem("state")) {
  var serializedState = localStorage.getItem("state");
  /* upload changes to server here */
  preloadedState = JSON.parse(serializedState);
}

将存储更改保存到本地存储。

store.subscribe(() => {
  var serializedState = JSON.stringify(store.getState());
  localStorage.setItem("state", serializedState);
});

【讨论】:

  • 这到底应该去哪里...?
  • 所以,这可以按预期将状态存储在本地存储中,但是我不确定将状态重新加载到哪里?
  • 这个答案的第一个代码块是从本地存储加载。 preloadedState 是您发布的代码中的 initialState 变量。
  • 老实说,我真的不明白这与我的代码库有关。请看代码笔:codepen.io/anon/pen/bLMgpv?editors=0010我不确定这是否正确,但我认为不是因为我收到以下错误:Cannot read property 'subscribe' of undefined
  • 所以,我得到了这个工作,有点。但是,由于.get 现在未定义,似乎不可变状态没有保留。
猜你喜欢
  • 2012-07-30
  • 2012-03-29
  • 2017-11-06
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多