Перерисовать компонент при использовании history.push () для того же компонента, но с другим URL - PullRequest
0 голосов
/ 05 марта 2019

У меня есть компонент с состоянием, который я использую в качестве компонента контейнера / страницы для извлечения данных из моей базы данных и визуализации некоторой информации.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>
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...