替换 immutableJS 的 .set()
Replace .set() of immutableJS
我必须从 immutableJS 中清理我所有的项目,现在我的问题是如何替换
return state.set('loaded', true);
如果我尝试
state.loaded = true
ESlint 告诉我这个错误 Disallow Reassignment of Function Parameters (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 of Immutable js 的最佳方法是什么?
你试过这个吗:
const appReducer = (state = initialState, action) => {
switch (action.type) {
case APP_READY:
return {
...state,
loaded: true
};
default:
return state;
}
};
虽然您可能会摆脱 ImmutableJS,但您的解析器仍然不能改变状态。您必须 return 一个新对象。这可以通过 { ...state, loading: true }
在 ES6 中完成,如果您使用的是旧版本的 EcmaScript,则可以使用 Object.assign({}, state, { loaded: true })
。
我必须从 immutableJS 中清理我所有的项目,现在我的问题是如何替换
return state.set('loaded', true);
如果我尝试
state.loaded = true
ESlint 告诉我这个错误 Disallow Reassignment of Function Parameters (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 of Immutable js 的最佳方法是什么?
你试过这个吗:
const appReducer = (state = initialState, action) => {
switch (action.type) {
case APP_READY:
return {
...state,
loaded: true
};
default:
return state;
}
};
虽然您可能会摆脱 ImmutableJS,但您的解析器仍然不能改变状态。您必须 return 一个新对象。这可以通过 { ...state, loading: true }
在 ES6 中完成,如果您使用的是旧版本的 EcmaScript,则可以使用 Object.assign({}, state, { loaded: true })
。