Как установить поле состояния в массиве.

Ниже мой код:

constructor() {
  super();
  arrayCheck: [
    isCheck = false
  ]
}

Я хочу получить isCheck и затем установить состояние в true. Как я могу установить это?

Ниже моя функция setState

onCheckBoxChange(isCheck, index, item) {
  this.setState({........});
}
0
Vichit Pov 28 Май 2019 в 09:23

2 ответа

Лучший ответ

Если вы действительно хотите обновить переменную состояния, используя массив, вы можете попробовать это. Во-первых, вам нужен массив объектов в переменной состояния и обновите его следующим образом

constructor () {
super();
this.state = {
     arrayCheck: [
        { isCheck : false }
    ]
  }
}

Затем обновите его значение следующим образом

onCheckBoxChange(isCheck, index, item) {
   let arrayCheck = [...this.state.arrayCheck]
   arrayCheck[0].isCheck = true
   this.setState({
     arrayCheck
   })
}
0
Rajesh Bhartia 28 Май 2019 в 06:54

Сначала вам нужно arrayCheck чтобы попасть в объект state:

this.state = {
    arrayCheck = [...]
}

Во-вторых, я бы предложил использовать объект, а не массив. В массиве вы можете получить доступ только к индексу, который содержит значение. С объектом вы можете сделать что-то вроде:

constructor () {
   super();
   this.state = {
        objectChecks: { // my also just set isCheck on the state
            isCheck: false
        }
   }
}

И тогда, когда вы хотите изменить это:

this.setState({objectChecks: {isCheck: true}})

Надеюсь, это поможет

0
DSCH 28 Май 2019 в 06:32