Я создаю веб-приложение в Typescript с помощью React, в моем componentDidMount()
есть оператор if, чтобы изменить состояние компонента и повторно выполнить его при определенных условиях. Но я почему-то не могу понять, почему выражение продолжает возвращать false. У кого-нибудь есть идея или объяснение?
componentDidMount() {
if (this.props.altSrc != this.state.currentSrc && this.state.errored == true) {
this.setState({...this.state, errored: false, currentSrc: this.props.altSrc})
}
}
Значение переменных выглядит следующим образом:
- altSrc = "www.xxx.com/not-found.jpg"
- currentSrc = "www.xxx.com/image.jpg"
- ошибка = истина
С моей точки зрения, outcoe должно быть истинным, так как две строки не равны друг другу и возвращают true, а когда ошибка истинна, она также должна возвращаться. Итак, мы имеем true && true => true.
Итак, я спрашиваю, что мне здесь не хватает в условии оператора if?
Фон
То, что этот код должен сделать, это отобразить изображение на экране, но если изображение не найдено, оно должно заменить изображение (currentSrc) альтернативным изображением (altSrc). Когда альт. изображение не найдено метод рендеринга возвращает ноль. Все работает отлично. Мне удалось получить уведомление, когда изображение не загружается, а затем установить значение «true», только если условие if создает проблемы.