Next.js Добавить slug/params для очистки URL
У меня есть структура с чистым URL-адресом в папке "страницы" вроде этой...
/pages/items/[pageNumber]/index.tsx
И если я использую router.push
Я использую его вот так, чтобы попасть на эту страницу...
router.replace("/items/[pageNumber]", "/items/1")
Это отлично работает, но теперь я хочу добавить параметры запроса (для фильтра) к этому URL-адресу, как я могу это сделать?
Я пробовал это...
router.push(`/items/[pageNumber]/`, `/items/1/?${filterParams}`, { shallow: true });
Но это не работает, и мне интересно, как это сделать.
1 ответ
Решение
Когда вы используете это так
router.push(`/items/[pageNumber]/`, `/items/1/?${filterParams}`, { shallow: true });
вы не передаете параметры запроса на страницу, я думаю, вы показываете их только в адресной строке.
Как насчет чего-то вроде этого:
router.push({
pathname '/items/[pageNumber]/',
query: {
param1: 'yes',
},
}, {
pathname: '/items/1/',
query: {
param1: 'yes',
},
});
Не забудьте обновить query
часть для вашего случая.