У меня проблема с реализацией shouldComponentUpdate
в моем приложении React с состоянием loadingData
.Я хочу, чтобы компонент не загружался снова, когда nextProps не изменился по сравнению с this.props, который работает нормально, и он теряет значение loadingData
как, и я не могу найти причину.
Почему loadingData
оказалось true
, даже если в Redux нет никаких изменений данных (nextProps и this.props)?
constructor(props){
super(props)
this.state = {
loadingData: false,
}
}
async componentDidMount() {
this._isMounted = true;
const { username } = this.state
this.setState({ loadingData: true })
try {
await this.props.getUserData(username)
this.setState({ loadingData: false })
} catch (err) {
console.log(err)
this.setState({ loadingData: false })
}
}
shouldComponentUpdate(nextProps, nextState) {
return this.props !== nextProps
}
render() {
return(
<div>{this.state.loadingData ? "Loading..." : this.props.userData}</div>
)
}
Обновлен код, чтобы показать, как я установил состояние loadingData
.По какой-то причине добавление shouldComponentUpdate
показывает «Загрузка ...» на экране вместо пользовательских данных из Redux.Я не уверен, почему ...