Prompt Detail:
Для передачи фильтров в URL вы можете использовать параметры строки запроса (query string parameters) в URL, как я указывал в предыдущем ответе. В этом случае, чтобы передать выбранный жанр "ужасы", вы можете добавить параметр "genre" в URL.
Например, если URL вашего сайта с фильмами выглядит так: https://example.com/movies
, то после выбора жанра "ужасы" и нажатия кнопки "Применить фильтр" вы можете обновить URL на: https://example.com/movies?genre=horror
. В этом случае параметр "genre" будет содержать значение "horror", которое вы можете использовать для отображения списка фильмов в выбранном жанре.
Вот пример кода, который можно использовать на сайте с фильмами для получения выбранного жанра из параметров строки запроса:
javascriptimport { useEffect, useState } from 'react';
import { useLocation } from 'react-router-dom';
function MovieList() {
const location = useLocation();
const [movies, setMovies] = useState([]);
useEffect(() => {
const searchParams = new URLSearchParams(location.search);
const genre = searchParams.get('genre');
fetch(`/api/movies?genre=${genre}`)
.then((response) => response.json())
.then((data) => setMovies(data));
}, [location.search]);
return (
<ul>
{movies.map((movie) => (
<li key={movie.id}>{movie.title}</li>
))}
</ul>
);
}
Этот компонент использует хук useLocation
из библиотеки react-router-dom
для получения текущего URL с параметрами строки запроса. Затем он извлекает значение параметра "genre" из объекта URLSearchParams
и передает его в запрос на получение списка фильмов в выбранном жанре. При изменении параметров строки запроса вызывается функция useEffect
, которая повторно отправляет запрос на сервер и обновляет список фильмов.
При отправке URL с параметрами строки запроса другому пользователю, выбранный жанр "ужасы" также будет передан в URL, и список фильмов на странице будет отображаться в выбранном жанре.