Я хочу рандомизировать фильмы из API MovieDB. Сначала я отправляю запрос на доступ к идентификатору последней записи:
const { loading: loadingLatest, error: errorLatest, data: latestData, refetch: refetchLatest } = useQuery(
LATEST_MOVIE_QUERY
);
Затем я хочу извлечь данные из случайно выбранного идентификатора в диапазоне от 1 до номера последнего идентификатора. Использование переменной, зависящей от первого запроса, похоже, ломает приложение, поэтому сейчас я просто использую один и тот же mov ie каждый раз при монтировании компонента:
const [
movieState,
setMovieState
] = useState(120);
const { loading, error, data, refetch } = useQuery(ONE_MOVIE_BY_ID_QUERY, {
variables : { movieId: movieState },
skip : !latestData
});
Я хочу нажать кнопку чтобы получить новый случайный mov ie, но проблема в том, что многие идентификаторы в API приводят к удаленным записям, а затем я получаю сообщение об ошибке. Я хочу продолжать повторную загрузку, пока не получу хороший ответ, но понятия не имею, как это осуществить. Прямо сейчас моя функция рандомизации выглядит так:
const randomizeClick = () => {
let mostRecentID = latestData.latestMovie.id;
setMovieState(Math.floor(Math.random() * mostRecentID));
};
Буду признателен, если кто-нибудь поможет мне, как это реализовать.