Я смотрел на другие решения, но не могу включить их в свой собственный код.
handleMovieClick = pageTransition => {
if (this.state.moviePage === 1 && pageTransition === '-') {
this.setState({ moviePage: 1 });
} else if (pageTransition === '+') {
this.setState({ moviePage: this.state.moviePage + 1 })
} else if (pageTransition === '-') {
this.setState({ moviePage: this.state.moviePage - 1 })
}
}
выше - setState, который отстает на 1, например, мне нужно дважды щелкнуть, чтобы перейти к 1. Я знаю, что это связано с моим рендерингом состояния один раз при нажатии, а затем состояние увеличивается, но я не уверен, как это исправить. Любая помощь будет оценена.
this.state = {
moviePage: 1,
tvPage: 1
};
Ниже для триггера фильма
<PaginationLink previous href="#toggle-buttons" onClick={()=>
{this.handleMovieClick('-'); this.handleFetchNewMovie(this.props.apiKey, this.state.moviePage)}} />
Это асинхронный вызов, может быть причиной отставания на 1 шаг для состояния?
handleFetchNewMovie = (apiKey, page = 1) => {
this.props.postMoviePopular(`https://api.themoviedb.org/3/movie/popular?api_key=${apiKey}&language=en-US&page=${page}®ion=US`);
}
componentDidMount() {
this.props.postMDBConfig(`https://api.themoviedb.org/3/configuration?api_key=${this.props.apiKey}`);
this.handleFetchNewMovie(this.props.apiKey);
this.handleFetchNewTV(this.props.apiKey);
}