Я использую неизменяемый js, и в моем редукторе я инициализирую состояние следующим образом:
export default function reducer(state = new Map(), action = {}) {
switch (action.type) {
case actionType.SET_YEARS:
return handlers.setYears(state, fromJS(action.Years));
default:
return state;
}
}
И затем в своем действии я создал создателя действия следующим образом:
function setYears(Years) {
return {
type: types.SET_YEARS,
Years,
};
}
И в обработчиках действий я объявляю это состояние:
export const setYears = (state, Years) => state.set('Years',Years);
Из моего компонента я получаю доступ к годам следующим образом:
years: state.app.get('Years') where app is the reducer name:
Итак, во всем сценарии , Я получаю годы от конечной точки. Я хочу передать некоторое начальное значение своему состоянию, чтобы я мог получить некоторые начальные значения. Я мог бы сделать это легко, не используя неизменяемый js, но не уверен, как установить начальные значения в неизменяемом свойстве состояния. Любая помощь будет очень признательна. Спасибо заранее.
reducer:
import { Map } from 'immutable';
import * as handlers from './actionHandlers';
import * as actionType from './actionTypes';
const initialState = new Map({
Years: [{ year: 2017 }, { year: 2016 }],
});
export default function reducer(state = new Map(), action = {}) {
switch (action.type) {
case actionType.SET_YEARS:
return handlers.setYears(state, fromJS(action.Years));
default:
return state;
}
} combReducer:
const reducer = combineReducers({
app: appReducer,
});
ссылка на песочницу: https://codesandbox.io/s/youthful-williams-hnrg1?file= / src / YearsView. js