'state.merge не является функцией' в react-native

В моем приложении, поддерживающем реакцию, я использую redux-persist для отображения данных, имеющихся в магазине, если пользователь не в сети. Но после добавления redux-persist я получаю ошибку state.merge is not a function. Я думаю, что это ошибка неизменности. пожалуйста, помогите мне решить эту проблему.

rootChangeReducer.js

import * as types from '../actions/login/ActionTypes';
import Immutable from 'seamless-immutable';

const initialState = Immutable({
  root: undefined, // 'login' / 'after-login' / 'register'
});

//root reducer
export function root(state = initialState, action = {}) {

  switch (action.type) {

    case types.ROOT_CHANGED:
      return state.merge({
        root: action.root
      });

    default:
      return state;
  }
}

и configureStore.js

import { createStore, combineReducers, compose, applyMiddleware } from "redux";
import thunk from "redux-thunk";
import { persistStore, persistCombineReducers } from 'redux-persist';
import storage from 'redux-persist/es/storage';

import masjids from "./reducers/productReducer";
import { root } from "./reducers/rootReducer";


const config = {
  key: 'root',
  storage,
} 

const reducers = {
  root,
  masjids
}

const reducer = persistCombineReducers(config, reducers)

let composeEnhancers = compose;

if (__DEV__) {
  composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
}

const configureStore = () => {
  return createStore(reducer, composeEnhancers(applyMiddleware(thunk)));
};

export default configureStore;

Заранее спасибо.


person Ahtesham Shah    schedule 12.03.2019    source источник
comment
но почему вы используете слияние? state, похоже, не имеет такой функции, как слияние.!   -  person Jaydeep Galani    schedule 12.03.2019


Ответы (1)


Просто используйте оператор распространения (...), чтобы объединить или добавить данные в состояние, а затем вернуть состояние. Например, return {...state,root:action.root} Или также можно использовать функцию merge в lodash

person kreysix    schedule 12.03.2019
comment
Спасибо, это работает, но для смены корня требуется больше времени - person Ahtesham Shah; 12.03.2019
comment
что я могу сделать, чтобы сократить время - person Ahtesham Shah; 12.03.2019