BrowserHistory не работает, когда пользователь находится на одном базовом URL с разными паролями запросов - PullRequest
0 голосов
/ 16 апреля 2019

BrowserHistory не работает, когда я нахожусь с тем же базовым URL, но с другими параметрами запроса.

// currently i am on same url but different query param's.

**settings/organization/appointment-manager?from=2020-04-04T09:58:29.761Z&to=2020-04-04T09:58:29.761Z&pageNo=1&pageSize=30&activeKey=3**


import { browserHistory } from 'react-router';
import moment from 'moment-timezone';


refresh(){

// I want to call componentDidMount again when i push the bellow URL.

const startDate = moment();
const endDate = moment();
 browserHistory.push(`/settings/organization/appointment-manager?from=${startDate}&to=${endDate}&pageNo=1&pageSize=30&activeKey=3`);
}

Когда функция refresh () вызывала мой URL-адрес, менялся новый параметр, но componentDidMount () не вызывался.

Как снова вызывается componentDidMount (), когда я нахожусь на одном базовом URL с разными параметрами запроса.

1 Ответ

0 голосов
/ 16 апреля 2019

Что вы должны сделать здесь, вы должны использовать componentWillRecieveProps().Потому что все, что вы делаете, это то, что вы обновляете router реквизиты.

Поэтому попробуйте сделать это:

    componentWillReceiveProps(newProps) {
        if (newProps.location.search !== this.props.location.search) {
            //search params have changed
        }
    }

или для более новой версии React

    getDerivedStateFromProps(nextProps, prevState) {
        if (nextProps.location.search !== this.props.location.search) {
            //search params have changed
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...