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 часть для вашего случая.

Другие вопросы по тегам