Как установить поле состояния в массиве.
Ниже мой код:
constructor() {
super();
arrayCheck: [
isCheck = false
]
}
Я хочу получить isCheck
, а затем установить состояние в true.
Как я могу установить это?
Ниже моя функция setState
onCheckBoxChange(isCheck, index, item) {
this.setState({........});
}
есть только одно значение? если да, то зачем поддерживать массив? его можно использовать как состояние напрямую. не нужно использовать как массив или объект
Сначала вам нужно 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}})
Надеюсь, поможет
Мне нужно получить доступ к isCheck по индексу.
Если вы действительно хотите обновить переменную состояния с помощью массива, вы можете попробовать это. Во-первых, вам нужен массив объекта в переменной состояния и обновите его следующим образом.
constructor () {
super();
this.state = {
arrayCheck: [
{ isCheck : false }
]
}
}
затем обновите его значение следующим образом
onCheckBoxChange(isCheck, index, item) {
let arrayCheck = [...this.state.arrayCheck]
arrayCheck[0].isCheck = true
this.setState({
arrayCheck
})
}
массивы не имеют пар ключ-значение, здесь вам нужен объект