Вам нужно сделать currentPage
параметром fetchTopRatedMovies
, чтобы вы могли передавать значение динамического c из вашего функционального компонента.
Вы должны контролировать текущую просматриваемую страницу в состоянии ваш функциональный компонент, например, такой:
const [currentPage, setCurrentPage] = useState(1);
Затем вы можете добавить кнопку для рендеринга функционального компонента, которая в обработчике onClick
устанавливает новое значение currentPage
и запускает вызов API. Примерно так:
<MyButton onClick={() => {
setCurrentPage(currentPage + 1);
fetchTopRatedMovies(currentPage).then(data => setApiData(data));
}}>
Я говорю приблизительно, потому что вместо немедленного вызова fetchTopRatedMovies
вы можете использовать useEffect
для повторного запуска запроса API при каждом изменении состояния / пропеллера. Или, что еще лучше, инициируйте запрос API, используя useEffect
, только когда есть существенное изменение состояния / поддержки.
Метод fetchTopRatedMovies
должен быть улучшен следующим образом:
export const fetchTopRatedMovies = async (pageNumber) => {
try {
const response = await fetch(
`${baseURL}top_rated?api_key=${API_KEY}${language}&page=${pageNumber}${region}`
);
const data = await response.json();
console.log('TOP RATED', data);
return data;
} catch (err) {
console.log(err);
}
};
Этот подход можно распространить на все остальные параметры вашего вызова API.
Надеюсь, это поможет !