Я попытался реализовать разбиение на страницы для данных в реакции. Если я нажимаю любую страницу, открывается нужная страница с данными. Например, если я нажму страницу 3, данные на странице 3 будут загружены. После этого, когда я нажимаю 5, данные на странице 5 загружаются. Теперь, если я нажму кнопку «Назад», URL отобразит страницу 3, но смонтированный компонент - страницы 5. Может ли кто-нибудь помочь мне в этом?
Вот мой компонент смонтировал:
componentDidMount = asyn c () => {
const { state } = this.props.location;
if (state && state.mesg) {
this.setState({
mesg: this.props.location.state.mesg,
mesgType: this.props.location.state.mesgType
});
const stateCopy = { ...state };
delete stateCopy.mesg;
this.props.history.replace({ state: stateCopy });
}
this.closeMesg(10000);
let pageNo = this.props.location.search.split("=");
await this.fetchCompaniesAPI(pageNo[1] || 1);
this.setState({ isLoading: false });
};
Здесь я извлекаю номер страницы из URL и вызываю API этой страницы.
Может кто-нибудь, пожалуйста, помогите мне.
Скажите, если вам нужно больше подробностей.
Я попробовал window.onpopstate, а затем refre sh, но это не помогло
Я попытался с помощью componentDidUpdate, но все же это не так рабочая
componentDidUpdate= async (prevProps, prevState)=> {
await this.setState({ isLoading: true });
let pageNo = this.props.location.search.split("=");
if (prevState.pageNo !== pageNo[1]) {
await this.fetchCompaniesAPI(pageNo[1] || 1);
this.setState({ isLoading: false });
}
}