Я хочу обрабатывать два разных маршрута внутри одного Route, вот код:

<Route exact path={['/$:username', '/$:username/:section']} render={(props)=><FullProfile {...props} me={this.props.me}/>} />

А внутри FullProfile я утешу реквизит. Однако, если я введу первый путь, параметр username будет undefined, а если я введу второй, я получу его как есть.

Чтобы уточнить, скажем, я ввожу mydomain.com/$john, тогда props.match будет:

params:
section: undefined
username: undefined

И если я введу mydomain.com/$john/likes, то props.match будет:

params:
section: "likes"
username: "john"

Когда я ввел первый путь, username был undefiend, почему? как вы видели, я поместил свои пути в массив, поэтому он должен работать нормально в обоих случаях.

1
Shahin Ghasemi 2 Дек 2018 в 20:06

1 ответ

Лучший ответ

Массив строковых путей поддерживается только в версии 4.4 response-router. Обновите до последней альфа-версии response-router-dom, чтобы использовать массив строк в качестве путей

Рабочая демонстрация

https://codesandbox.io/s/8yo61w900l

0
Shubham Khatri 2 Дек 2018 в 18:34