Language/React
React Loop 모음
건담아빠
2023. 5. 11. 16:56
리액트에서 사용하는루프 정리
...
const ORDER_BY_PUBLISH_DT = 'PUBLISH_DT';
const ORDER_BY_EXP_DAYS = 'EXP_DAYS';
const ORDER_BYS = {
[ORDER_BY_PUBLISH_DT]: '최근등록순',
[ORDER_BY_EXP_DAYS]: '마감임박순',
};
const NoticeItems = (props) => {
...
return (
<>
<article className={cx('items')}>
<div>
<div className={cx('wrap-count')}>
<span className={cx('count')}>
총 <span>{Util.setComma(totalCount)}</span>개
</span>
<span className={cx('order')} onClick={() => context.openPopup(POPUP_ORDER_BY)}>
{ORDER_BYS[orderBy]}
</span>
</div>
{(() => {
if (items && items.length > 0) {
return (
<ul>
{items.map((item, index) => (
<NoticeItem key={item.ID} item={item} index={index} banner={banner} />
))}
</ul>
);
} else {
return (
<div className={cx('nodata')}>
<div className={cx('empty-box')}>
<img src="/images/new/image_empty_house.svg" />
</div>
<strong>조건에 해당하는 지점이 없습니다</strong>
</div>
);
}
})()}
</div>
</article>
{refHasMore.current && <ListLoading />}
<MoveUpFilterPop title="" subtitle="" popupName={POPUP_ORDER_BY}>
<ul className={cx('wrap-order-by')}>
{Object.keys(ORDER_BYS).map((key, index) => {
return (
<li
className={cx({ on: key === orderBy })}
onClick={() => {
setOrderBy(key);
}}
>
{ORDER_BYS[key]}
</li>
);
})}
{Object.values(ORDER_BYS).map((value, index) => {
return (
<li
className={cx({ on: value === orderBy })}
onClick={() => {
// setOrderBy(key);
}}
>
{value}
</li>
);
})}
</ul>
</MoveUpFilterPop>
</>
);
};
export default NoticeItems;