2017-01-13 3 views
1

Так что в настоящее время я хочу иметь маршрут, где это может быть любое перечисление идентификаторов (вроде файлового браузера). Это выглядит следующим образом:Сделать опцию splat в маршруте реактивного маршрутизатора

<Route path="/browser"> 
    <IndexRoute component={FileBrowser} /> 
    <Route path=":id"> 
    <IndexRoute component={HardDriveBrowser} /> 
    <Route path="folders/**/:folderId" component={FolderContents} /> 
    </Route> 
</Route> 

Однако, если я посещаю маршрут, такие как /browser/1/folders/2, он не соответствует. Я думаю, что он ждет этого.

Есть ли способ указать splat как необязательный или по умолчанию использовать пустую строку?

ответ

1

В ответном маршрутизаторе v4 просто поставьте ? в конце, чтобы сделать параметр необязательным. В response-router v2 вы используете скобки, чтобы сделать параметр необязательным. ex: (:folderId) сделает это необязательным.

+0

Использование '/ folders/**? /: FolderId' не работает – corvid

+0

Вы используете реактивный маршрутизатор v2/3. Это должно быть 'folders/** (/: folderId)' – zackify

+0

, там все еще есть проблема: 'splat' всегда будет там, но': folderId' не будет – corvid

Смежные вопросы