
{auctions.map((auction) => (
<li key={auction.auction_id} onClick={() => navigate('/detail/${auction.auction_id}')}>
<h6>
<img src={clock} />
{transDate(auction.created_at)}
</h6>
<h2>{auction.title}</h2>
<p>{auction.content}</p>
{auction.category && <h5>{auction.category.category_name}</h5>}
</li>
))}
function Header() {
const navigate = useNavigate();
const LogoClickHandler = () => {
navigate("/");
};
return (
<StHeader>
<p onClick={LogoClickHandler}>엘리트옥션</p>
<div>
<img src={search} />
<button>로그인</button>
</div>
</StHeader>
);
}

1) 카테고리 ID 추출:
선택된 카테고리들에서 'category_id'를 추출하여 'categoryIds' 배열을 생성
const categoryIds = categories.map((category) => {
return category.category_id;
});
2) 카테고리 필터 적용:
'categories' 배열의 길이가 0보다 큰 경우, 즉 사용자가 하나 이상의 카테고리를 선택했을 때, 'query.in' 메소드를 사용하여 해당 'category_id'를 가진 경매들만 필터링함
if (categories.length > 0) {
query.in("category_id", categoryIds);
}
☞ 결론
// 경매 데이터를 가져오는 useEffect 훅
useEffect(() => {
// 경매 데이터를 비동기적으로 가져오는 함수
const fetchData = async () => {
const result = await fetchGetAuctions(
queryOption.searchKeyword,
queryOption.categories,
queryOption.limit,
queryOption.offset,
queryOption.orderBy,
queryOption.order
);
console.log(result);
// 가져온 데이터로 State 업데이트
setAuctionData(result || null);
};
// 함수 호출
fetchData();
}, [selectedCategories]);
<button
key={category.category_id}
onClick={() => onCategorySelect(category)}
style={{
backgroundColor: selectedCategories.some(
(c) => c.category_id === category.category_id
) ? "#afcaff" : "transparent",
}}
>
{category.category_name}
</button>
onClick={() => navigate('/detail/${auction.auction_id}')}
오늘의 한줄평 : 열이 나도 코딩은 쉴수 없지 파이팅!