Haven在谷歌搜索和文档上发现了很多,但是使用不可变的js和redux有条件地设置状态的最佳实践和常见模式是什么?
见这个例子:
const initialState = fromJS({
username: '',
roles: null,
});
function appReducer(state = initialState, action) {
switch (action.type) {
case LOGIN:
return state
.set('username', action.token.preferred_username
.set('roles', action.token.roles); // roles could be undefined
}
}
问题是角色可能是未定义的,所以你如何实际有条件地设置状态,因为这个例子不起作用:
case LOGIN:
if (action.token.roles && action.token.roles.length > 1) {
state.set('roles', action.token.roles);
}
return state
.set('username', action.token.preferred_username
返回的状态没有定义角色。在使用Immutable JS时,如何有条件地设置状态?
由于
答案 0 :(得分:0)
感谢@Mario Tacke,您正走在正确的轨道上。我已经在reducer(动作)之前完成了一级逻辑。