我从ImmutableJS开始,我有以下redux:
import { fromJS } from 'immutable';
import {
SET_MODAL_VISIBLE
} from './constants';
const initialState = fromJS({
loginModal: 'none',
registerModal: 'none',
passwordModal: 'none',
});
function modalReducer(state = initialState, action) {
switch (action.type) {
case SET_MODAL_VISIBLE:
return state
.set(action.modal, 'block');
default:
return state;
}
}
export default modalReducer;

我如何支持所有状态项目的“无”#39;除了" action.modal" ?我知道我可以使用
return initialState
.set(action.modal, 'block');
但是使用initialState对我不好,因为状态会更多,我不想回到初始状态。
答案 0 :(得分:0)
我假设action.model是一个字符串,因此您可以从您所在的州获取所有密钥并将其设置为" none"除了使用reduce:
的action.model键[...state.keys()].reduce(
(state,key)=>
(key===action.model)
? state.set(key,"block")
: state.set(key,"none"),
state
);