Я пытаюсь обновить состояние на основе определенных условий, которые включают значения, данные конкретным объектам в массиве. Я пробовал различный синтаксис, который дал мне ошибку, такую как this.setState(this.state.destinations[i].map(destinations=>destinations.visibilityStatus=false))
Я знаю, что все остальное, что я написал, работает, кроме setState. В приведенном ниже коде вы найдете соответствующую функцию, которая с помощью своего текущего синтаксиса обновляет visibilityStatus всех объектов, а не конкретного объекта. как я могу написать setState так, чтобы он теоретически обновлял состояние таким образом this.setState (this.state.destinations.map(destinations=>destinations.visibilityStatus=false))
или другим способом записать его (который все еще не работает) this.state.destinations[i].visibilityStatus===false
вот текущий код для функции,если вам нужно больше подробностей, пожалуйста, скажите, но обычно этого достаточно, потому что это больше проблема синтаксиса, чем логической структуры. Спасибо за ваше время:
updateDestinationsVisibilityStatus=()=>{
for(var i =0; i<this.state.destinations.length; i++){
for( var n=0; n<this.state.destinations[i].visibilityTime.length; n++){
if(this.state.destinations[i].visibilityTime[n].visibility===false && this.state.timerString===this.state.destinations[i].visibilityTime[n].value)
{ this.setState (this.state.destinations.map(destinations=>destinations.visibilityStatus=false))}
else if (this.state.destinations[i].visibilityTime[n].visibility===true && this.state.timerString===this.state.destinations[i].visibilityTime[n].value)
{ this.setState (this.state.destinations.map(destinations=>destinations.visibilityStatus=true))}
console.log(this.state.destinations[i].visibilityStatus)
}
}
}