Redux framework использует reducers, чтобы изменить состояние приложения в ответ на действие.Как использовать Immutable.js с сокращением?
Ключевым требованием является то, что редуктор не может изменять существующий объект состояния; он должен создать новый объект.
Дурной пример:
import {
ACTIVATE_LOCATION
} from './actions';
export let ui = (state = [], action) => {
switch (action.type) {
case ACTIVATE_LOCATION:
state.activeLocationId = action.id;
break;
}
return state;
};
Хороший пример:
import {
ACTIVATE_LOCATION
} from './actions';
export let ui = (state = [], action) => {
switch (action.type) {
case ACTIVATE_LOCATION:
state = Object.assign({}, state, {
activeLocationId: action.id
});
break;
}
return state;
};
Это хороший случай использования для Immutable.js.
Вы можете увидеть, как это делается здесь https://github.com/este/este – Restuta
правила @Restuta Stack Overflow требуют, чтобы вы раскрыть ваши отношения с третьим -партийный продукт, который вы рекомендуете/ссылаетесь/рекламируете, http://meta.stackexchange.com/questions/94022/how-can-i-link-to-an-external-resource-in-a-community-friendly- В этом случае вы являетесь одним из участников. – Gajus
Я не думаю, что проект OSS-шаблона подходит для «стороннего продукта», и мой комментарий квалифицируется как «ответ». Это просто комментарий, если вы внимательно посмотрите, мой вклад в этот проект был одной из строк, которая позже была отменена. Прошу прощения, но я не могу держать такие незначительные вещи в виду, когда я обращаюсь к чему-то (так как o много способствуют). Я признаю, что я являюсь автором. Не знаете, в чем смысл вашего комментария, вы чувствуете, что я его рекламирую? Примите мое слово - я не, я просто видел там, где работает, идиоматично. – Restuta