Інтеграція Хука useSearchParams
Свайпніть щоб показати меню
У компоненті ProductsPage інтегрується хук useSearchParams для керування параметрами запиту.
import React, { useState, useEffect } from "react";
import { useSearchParams } from "react-router-dom";
const ProductsPage = ({ data }) => {
const [companies, setCompanies] = useState(data);
const [searchParams, setSearchParams] = useSearchParams();
// Function to update the displayed `companies` based on query parameters
const updateCompanies = (params) => {
const filteredCompanies = data.filter((item) => {
const { companyName } = item;
if (params.get("name")) {
return companyName.toLowerCase().includes(params.get("name"));
}
return true;
});
setCompanies(filteredCompanies);
};
useEffect(() => {
// When the component mounts or query parameters change, update the displayed `companies`
updateCompanies(searchParams);
}, [searchParams, data]);
// Function to update query parameters based on user input
const handleChange = (e) => {
const newName = e.target.value;
setSearchParams({ name: newName });
};
return (
<>
<input
type="text"
value={searchParams.get("name") || ""}
onChange={handleChange}
/>
<ul className="companyList">
{companies.map(({ id, companyName, companyDescription }) => (
<li key={id}>
<h2>{companyName}</h2>
<p>{companyDescription}</p>
</li>
))}
</ul>
</>
);
};
Ось детальний розбір коду:
- Імпортуються необхідні залежності:
useState,useEffectтаuseSearchParamsз React Router; - Усередині компонента ініціалізується стан за допомогою
useState. Станcompaniesмістить дані для відображення, а функціяsetCompaniesвикористовується для їх оновлення; - Створюється функція
updateCompaniesдля фільтрації даних на основі параметрів запиту. Функція приймає поточні параметри запиту як екземплярURLSearchParamsі використовує їх для фільтраціїdata. У цьому випадку фільтрація відбувається за параметром "name"; - Хук
useEffectвикористовується для запуску функціїupdateCompaniesпід час монтування компонента та при зміні параметрів запиту. Це гарантує, що відображувані дані залишаються синхронізованими з URL; - Функція
handleChangeоновлює параметр запиту "name" у відповідь на введення користувача. Коли змінюється поле введення, викликаєтьсяsetSearchParamsз новим значенням параметра; - У операторі return компонента відображається поле введення для користувача та список компаній на основі відфільтрованих даних.
Цей код демонструє, як інтегрувати useSearchParams і React Router для створення динамічного вебзастосунку, який реагує на зміни параметрів запиту.
Все було зрозуміло?
Дякуємо за ваш відгук!
Секція 3. Розділ 6
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 4.17Секція 3. Розділ 6