#javascript #reactjs #react-router #react-router-dom
Вопрос:
У меня такой путь to/:param/(optional)?/:optionalParam?
, когда я использую generatePath()
, как:
generatePath('to/:param/(alsoTo)?/:optionalParam?', {
param: 'abc',
optionalParam: 'xyz',
});
Я получаю что-то вроде to/abc/xyz
вместо to/abc/alsoTo/xyz
(первое промахивается alsoTo
на пути).
Что я должен сделать, чтобы получить to/abc/alsoTo/xyz
/alsoTo/
сгенерированный путь?
Я использую react-маршрутизатор v5.
Ответ №1:
Не создавайте alsoTo
параметр , когда вы передаете его generatePath
, т. е.
generatePath('to/:param/alsoTo/:optionalParam?', {
param: 'abc',
optionalParam: 'xyz',
})
Конечно, если вы хотите условно добавить alsoTo
, передайте это как параметр
generatePath('to/:param/:alsoTo(alsoTo)?/:optionalParam?', {
param: 'abc',
optionalParam: 'xyz',
alsoTo: someValueForAlsoTo,
});
Значение alsoTo
в объекте params должно быть 'alsoTo' | undefined
равно , иначе вы получите сообщение об ошибке.