React:在reducer中更新我的状态的一个值

时间:2016-06-05 15:00:30

标签: javascript reactjs

我尝试使用redux修改当前状态的值。 在这里我的状态:

tickets : {
    high_tickets: [
        {
            "value": value,
            "value": value,
            "value": value,
            "value": value,
            "visibility": 1
        },
        {
             ...
        }
    ],
    low_tickets: [
        ...
    ]
}

这是我的减票机:

case 'HIDE_TICKET':
      const i = action.index
      if(action.typeFraud == "high") {
        state = {
          "high_tickets": [
            ...state.high_tickets.slice(0,i),
            {
              ...state.high_tickets[i],
              "visibility": 0
            }
            ...state.high_tickets.slice(i + 1),
          ],
          "low_tickets": [
            ...state.low_tickets
          ]
        }
      }
      else if(action.typeFraud == "low") {
        ...
      }
      return state
      break;

我在第{...state.high_tickets[i],"visibility": 0}行有一个错误。意外的tocken。

如何只修改我的对象的一个​​值,而不是重新设置我的reducer中的所有值。

感谢。

1 个答案:

答案 0 :(得分:2)

如果要改变现有对象,可以使用Object.assign(state.high_tickets[i], { visibility: 0 });如果要创建全新对象,可以使用Object.assign({}, state.high_tickets[i], { visibility: 0 })

看起来像:

"high_tickets": [
    ...state.high_tickets.slice(0,i),
    Object.assign(...),
    ...state.high_tickets.slice(i + 1),
]