Как передать несколько запросов в следующий маршрутизатор
Я работаю в 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