Redux 重复突变

Redux 重复突变,redux,Redux,这可能是一个愚蠢的问题,但我正在为React应用程序使用Redux,并且我需要将一些应用程序状态存储为布尔值。 当我在减速器中拾取一个动作时,我需要将布尔值设置为与当前值相反的值。目前,我正在使用: export default function(state = true, action) { switch (action.type) { case 'SOME_ACTION_TYPE': return action.payload; } retur

这可能是一个愚蠢的问题,但我正在为React应用程序使用Redux,并且我需要将一些应用程序状态存储为布尔值。 当我在减速器中拾取一个动作时,我需要将布尔值设置为与当前值相反的值。目前,我正在使用:

export default function(state = true, action) {
    switch (action.type) {
    case 'SOME_ACTION_TYPE':
        return action.payload;
    }
    return state;
}
action.payload已经保存了正确的值,但是我可以像现在这样分配它吗,或者我正在改变状态吗?你能把它变为布尔值吗

谢谢

您应该试试:

export default function(state = true, action) {
  switch (action.type) {
  case 'SOME_ACTION_TYPE':
    return !state;
  }
   return state;
}

希望它能有所帮助

我认为这是正确的,如果所有操作都是翻转状态中的布尔值,那么您不需要有效负载。我只需要知道我是否应该以某种方式进行复制,就像我们对对象和数组所做的那样,或者这是否足以防止状态突变您可以轻松测试它:
var objA={a:1}var objB=objA;objB.a=2;console.log(objA.a)/*返回2*/*但是*/var boolA=true;var boolB=boolA;boolB=!boolB;console.log(boolB,boolA)//返回false,true