мне нужно очистить весь мой проект от immutableJS, теперь мой вопрос в том, как я могу заменить
return state.set('loaded', true);
если я попытаюсь
state.loaded = true
ESlint показывает мне эту ошибку Запретить переназначение функциональных параметров (no-param-reassign
полный код это
import { Map } from 'immutable';
import { APP_READY } from '../actions/appActions';
import { USER_LOGOUT } from '../actions/logoutActions';
const initialState = Map({
loaded: false,
});
const appReducer = (state = initialState, action) => {
switch (action.type) {
case APP_READY:
return state.set('loaded', true);
case USER_LOGOUT:
return state.set('loaded', true);
default:
return state;
}
};
export default appReducer;
Как лучше всего заменить .set Immutable js?





Вы пробовали это:
const appReducer = (state = initialState, action) => {
switch (action.type) {
case APP_READY:
return {
...state,
loaded: true
};
default:
return state;
}
};
Хотя вы можете избавиться от ImmutableJS, ваш распознаватель по-прежнему не должен изменять состояние. Вы должны вернуть новый объект. Это можно сделать либо в ES6 с помощью { ...state, loading: true }, либо с помощью Object.assign({}, state, { loaded: true }), если вы используете более старую версию EcmaScript.