Javascript / ES2015在React(或Redux)状态下切换数组对象值

时间:2016-04-05 16:57:58

标签: javascript reactjs

如果我有以下内容:

export default class Questions extends Component {

  state = {
    questions: [
      {value: 'value one, required: true},
      {value: 'value two, required: true},
      {value: 'value two, required: true} 
    ]
  };
...

...我想将中间对象的required更改为false,最好的方法是什么?所以我最终得到:

questions: [
  {value: 'value one, required: true},
  {value: 'value two, required: false},
  {value: 'value two, required: true} 
]

我试过了:

_toggleRequired = (index) => {
  this.setState({
    questions[index].required = !questions[index].required
  })
}; 

...但它在第一个[index]上给出了语法错误。是不是也最好返回一个新阵列而不是改变现有阵列?

TIA!

1 个答案:

答案 0 :(得分:2)

如果您不想处理不可变对象,那么这就是我的建议。如果从当前状态创建新的对象数组,请对特定索引处的对象进行更改,然后将该对象保存为它应该完成您要执行的操作的状态。

$ pyreverse -o png -p myproject \path\to\myproject\myfile.py