Я использую React + Redux
Логика приложения: Когда запрос API выполнен и здесь есть ошибка от сервера, отобразите эту ошибку с анимацией на экране.
Но когда то же самоеapi route, который возвращает одну и ту же ошибку, вызванную пользователем пару раз, componentWillReceiveProps
не вызывается, поскольку текстовое значение ошибки совпадает. Как вызывать эту функцию каждый раз, когда при редуксе меняется errorText
состояние?
import React, { Component } from 'react'
import './style.scss'
class SmallError extends Component {
state = {
errorText: "",
}
timeout = null;
async componentWillReceiveProps(nextProps) {
clearTimeout(this.timeout)
await this.setState({ errorText: "" })
await this.setState({ errorText: nextProps.errorText })
this.timeout = setTimeout(() => this.setState({ errorText: "" }), 3500)
}
render() {
const { errorText } = this.state;
if (errorText !== "") {
return (
<div className="smallError">
<span className="animated">{errorText}</span>
</div>
)
} else {
return (<></>)
}
}
}
export default SmallError;
Нуопять же: componentWillReceiveProps
не вызывать при добавлении того же сообщения об ошибке в Redx.