Сравнение элемента массива и this.state
Все привет. Возникла проблема сравнения значений. У меня есть заполненный массив, у которого есть элемент в котором есть свойство value. По клику передаю в обработчик события,который находится в родительском компоненте, это свойство value. В обработчике я записываю переданное значение в this.setState(neededValue : this.state.something = neededValue) . При нажатии на другую кнопку, я сравниваю значения if(this.state.neededValue === значение в массиве, который находится тоже в this.state не совпадает. В консоли ( Google Chrome) значения одинаковы, но значение из массива подсвечено синим цветом, а значение из this.state.neededValue, в которое до сравнения было записано то же значение из массива, подсвечено серым цветом. Насколько я понял, то я сравниваю значение из this.state с ссылкой на значение из массива.
Вопрос: почему, когда я присваиваю значение с помощью this.setState , оно не равно тому значению, которое лежит в массиве this.state.neededArray?
Для примера: я нажал на кнопку, передал значение через обработчик события, изменил состояние в объекта на это значение. Например, значение стало 10. Такое же значение лежит в массиве. Но когда я сравниваю значение из массива со значение в this.state.neededValue они не равны. Почему 10 не равно 10 ? Как правильно изменить состояние, что бы можно было сравнивать значения?
Пример кода:
mainElementClick = (e, something) => {
if(this.state.neededValue.value === null){
this.setState({neededValue: this.state.neededValue.value = something});
this.setState({
initedElements: this.state.neededArray.map(val =>{
val.map(y => {
return y.value === rankingValue ? {...y.selected = true} : y
})
return val;
})
});
}
}
anotherElementClicksHandler = (e) => {
if(this.state.neededValue.value !== null){
this.setState({
initedElements: this.state.neededArray.map(val =>{
val.map(y => {
return y.value === this.state.neededValue.value ? {...y.selected = false} : y
})
return val;
})
});
this.setState({mainDisplayValue: null});
}
}