Redux-persist для реакции JS, выдающей ошибку: хранилище noop в Firefox 78.0.2

У меня есть crud-приложение в ReactJS, которое использует redux-persist и работает без ошибок в Chrome. Постоянная версия с избыточностью — v6.

Когда я запускаю приложение в Firefox 78.0.2, консоль возвращает следующую ошибку:

> redux-persist failed to create sync storage. falling back to noop storage.

Я использовал localStorage в своем app.js, но удалил и перестроил приложение: без вызова localStorage в Firefox приложение создается, но не сохраняется. В обоих случаях в Chrome нет проблем.

Я нашел несколько ответов для React-native, но пока не нашел тему для ReactJS.

Кто-нибудь здесь сталкивался с такой же проблемой?

вот мой код:

Пакет.JSON:

      "devDependencies": {
   ...
  },
  "dependencies": {
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-redux": "^7.2.0",
    "react-uid": "^2.3.0",
    "redux": "^4.0.5",
    "redux-persist": "^6.0.0"
  },
  "browserslist": [
    ...
  ]
}

Индекс.HTML:

import React from 'react';
import ReactDOM from 'react-dom';
import { persistStore } from 'redux-persist';
import { PersistGate } from 'redux-persist/lib/integration/react';
import { Provider } from 'react-redux';
import { configureStore } from './store';
import App from './App.js';

const store = configureStore();
const persistor = persistStore(store);
ReactDOM.render(
    <Provider store={store}>
        <PersistGate
            loading={<div>Loading app..</div>}
            persistor={persistor}>
        <App />
        </PersistGate>
    </Provider>,
    document.querySelector('#root'),
);

Магазин.JS:

import { createStore, combineReducers } from 'redux';
import { persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';
import { articles } from './services/actionReducer';

const reducers = {
    articles,
};

const persistConfig = {
    key: 'root',
    storage,
    stateReconciler: autoMergeLevel2,
}

const rootReducer = combineReducers(reducers);
const persistedReducer = persistReducer(persistConfig, rootReducer);
export const configureStore = () => createStore(
    persistedReducer,
    window.__REDUX_DEVTOOLS_EXTENSION__ &&
    window.__REDUX_DEVTOOLS_EXTENSION__(),
);

person timber535    schedule 16.07.2020    source источник


Ответы (1)


В redux-persist v6 вы пытаетесь изменить следующее:

import storage from 'redux-persist/lib/storage';
import AsyncStorage from '@react-native-community/async-storage';

const persistConfig = {
//...
storage,
}
=>
const persistConfig = {
//...
storage: AsyncStorage,
}
person Mian Jawad Ahmad    schedule 16.07.2020
comment
Я не ищу нативное решение для реагирования, проблема возникает в приложении для реагирования. Если это также не работает для приложения React. - person timber535; 18.07.2020