Сравнение элемента массива и 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});
    }
  }

Ответы (0 шт):