Как передать несколько запросов в следующий маршрутизатор

Я работаю в next.js и next-router

У меня есть 2 параметра данных, которые я хочу передать

Один - entity_id, другой - url_key.

data={
    entity_id: 5,
    url_key: 'canada/ontario/store_five'
}

В настоящее время я могу передать один url_key:

 Router.push('/store?url_key=' + marker.url_key, `/store/${marker.url_key}`)

URL отображается так, как я хотел

http://BaseUrl/store/canada/ontario/store_five

Теперь я хочу также отправить entity_id вместе с указанным выше url_key, но это не должно отображаться в URl

2 ответа

Вы можете передать столько параметров запроса, сколько хотите, просто используя строку запроса.

// using urls
Router.push(
  `/store?url_key=${marker.url_key}&entity_id=${marker.entity_id}`,
  `/store/${marker.url_key}`
);

// using object
Router.push({
  pathname: '/store',
  query: { url_key: marker.url_key, entity_id: marker.entity_id },
  asPath: `/store/${marker.url_key}`,
});

Для получения дополнительной информации прочтите документацию по маршрутизатору.

Я бы посоветовал вам использовать объект запроса для передачи нескольких запросов в следующий маршрутизатор. Использование пакета

      import {useRouter} from "next/router";

 const router=useRouter();
 router.push({
               
 pathname:'/store',
 
query:{entity_id :"2221ACBD",url_key:"URL KEY"},
            })

Чтобы получить данные из запроса, вы можете использовать деструктуризацию массива запроса следующим образом:

         const { query } = useRouter();

    console.log("query::",query);

    console.log("entity key:-",query.entity_id);

    console.log("url_key:-",query.url_key);

Пример: Пример1

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