this.setState({giftcards: giftcards}).
Вы устанавливаете giftcards
значение состояния, равное объекту. Этот объект JSON имеет ключ подарочных карт. Таким образом, как минимум ваше состояние в onClickHandler
должно быть примерно таким:
if(this.state.first === this.state.giftcards.giftcards[index]){
....
}
Поскольку ключ подарочных карт имеет массив для своего значения, вы также должны решить, с каким элементом массива вы хотите его проверить, например this.state.giftcards.giftcards [0] .cardnumber ...
Тем не менее, звучит больше так, будто вы просто хотите отфильтровать некоторые данные, чтобы определить, ввел ли пользователь ту же самую информацию карты.
Мы можем использовать array.filter()
для возврата любых подарочных карт, которые соответствуют вашим пользовательским данным. Если есть, то мы установим isSeen в true. Попробуйте сделать что-то подобное для onClickHandler()
:
onClickHandler(){
const { giftcards, first, second } = this.state
const matchingGiftCards = giftcards.filter((card) => {
return card.cardnumber == first && card.control == second
})
//if there are any matching giftcards we will set isSeen to tru
if(matchingGiftCards.length > 0){
this.setState({isSeen:true})
}
}