У меня есть компонент с состоянием, который я использую в качестве компонента контейнера / страницы для извлечения данных из моей базы данных и визуализации некоторой информации.URL-адрес для этой страницы, например, myurl.com/admin/orders/order-2019-3
На странице есть предыдущая и следующая кнопка.При нажатии на один из них пользователь должен увидеть данные предыдущего или следующего заказа.Для этого я использую функцию onClick с this.props.history.push
и URL предыдущего или следующего ордера.Например, this.props.history.push('/admin/orders/order-2019-4')
.
К сожалению, меняется только URL.Страница не перезагружается и данные заказа 2019-4 не загружаются.
Итак, мой вопрос: нужно ли принудительно обновлять или этот подход неправильный (мне нужно заменить URL-адрес и вызвать функцию, которая извлекает новые данные?)
Примечание: IЯ использую react-router-v4
Какой-то код моего компонента контейнера:
async componentWillMount() {
const snapshot = await Database.ref(`orders/${this.props.match.params.orderID}`).once('value');
if (snapshot.exists()) {
const order = snapshot.val();
this.setState({ order: snapshot.val() });
} else {
this.props.history.push('/admin/orders');
}
this.setState({ isFetching: false });
}
render() {
const { order } = this.state;
return (
<React.Fragment>
<header>
<h1>{order.general.orderID}</h1>
</header>
<button onClick={() => this.props.history.push('/admin/orders/order-2019-03')}>Previous order</button>
</React.Fragment>
);
}