민프
[React][TypeScript] useState 리스트 필터링 및 삭제 본문
필터링 방법
import React, { useState } from 'react';
//타입 인터페이스 지정
interface Item = {
id: number;
name: string;
};
const Example: React.FC = () => {
// 예시 데이터 생성
const [items, setItems] = useState<Item[]>([
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'orange' },
]);
//필터링 된 아이템을 저장해줄 useState
const [filteredItems, setFilteredItems] = useState<Item[]>(items);
//필터링 기능
const handleFilter = (searchTerm: string) => {
const filtered = items.filter(item =>
item.name.toLowerCase().includes(searchTerm.toLowerCase())
);
setFilteredItems(filtered);
};
return (
<div>
<input type="text" onChange={(e) => handleFilter(e.target.value)} />
<ul>
{filteredItems.map((item) => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
};
삭제 방법
import React, { useState } from 'react';
//타입 인터페이스 지정
inteface Item = {
id: number;
name: string;
};
const Example: React.FC = () => {
// 예시 데이터 생성
const [items, setItems] = useState<Item[]>([
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'orange' },
]);
// 중복 리스트 삭제 기능
const uniqueItems = Array.from(new Set(items.map((item) => item.name)))
.map((name) => {
return items.find((item) => item.name === name);
})
.filter(Boolean);
return (
<div>
<ul>
{uniqueItems.map((item) => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
};
'[React]' 카테고리의 다른 글
[React][TypeScript][MUI] MUI Switch Toogle버튼의 크기를 변경해보자 (width, height, 동그라미 크기, 동그라미 위치) (0) | 2023.04.06 |
---|---|
[React] react-router-dom 에서 URL 파라미터를 받아와보자 (0) | 2023.04.04 |
[React][TypeScript] QR코드를 생성해보자 (feat. qrcode.react) (0) | 2023.03.23 |
[React][TypeScript] npm http-server은 무엇일까? (0) | 2023.03.21 |
[React][TypeScript][MUI] MUI TextField 커스텀해보자 (0) | 2023.03.20 |
Comments