Next.jsでクエリパラメータを動的に付与する
Next.js
フロントエンド
知識
タブ切り替えでパラメーターを切り替える例
ts
const handleTabClick = (tab: UserCategoryTab): void => {
setCategoryId(tab.categoryId);
setMemoPage(1);
setMemoHasMore(true);
setMemos([]);
setTabs((prevTabs) =>
prevTabs.map((prevTab) => ({
...prevTab,
isSelected: prevTab.id === tab.id,
}))
);
updateSearchParams({
tab: tab.id.toString(),
});
};ts
const updateSearchParams = useCallback(
(newParams: Record<string, string>): void => {
const current = new URLSearchParams(Array.from(searchParams.entries()));
Object.entries(newParams).forEach(([key, value]) => {
if (value === null || value === '') {
current.delete(key);
} else {
current.set(key, value);
}
});
router.replace(`${pathname}?${current.toString()}`);
},
[pathname, router, searchParams]
);