Quero declarar um caminho com um parâmetro de caminho opcional; portanto, quando adiciono a página, faça algo extra (por exemplo, preencha alguns dados):
http: // localhost / app / path / to / page <= renderiza a página http: // localhost / app / path / to / page / pathParam <= renderiza a página com alguns dados de acordo com o pathParam
No meu roteador de reação, tenho os seguintes caminhos, para oferecer suporte às duas opções (este é um exemplo simplificado):
<Router history={history}>
<Route path="/path" component={IndexPage}>
<Route path="to/page" component={MyPage}/>
<Route path="to/page/:pathParam" component={MyPage}/>
</Route>
</Router>
Minha pergunta é: podemos declarar em uma rota? Se eu adicionar apenas a segunda linha, a rota sem o parâmetro não será encontrada.
EDIT # 1:
A solução mencionada aqui sobre a seguinte sintaxe não funcionou para mim, é uma solução adequada? Existe na documentação?
<Route path="/product/:productName/?:urlID?" handler={SomeHandler} />
Minha versão do react-router é: 1.0.3
/route(/:category/(:article)
Para qualquer usuário do React Router v4 que chega aqui após uma pesquisa, os parâmetros opcionais em a
<Route>
são indicados com um?
sufixo.Aqui está a documentação relevante:
https://reacttraining.com/react-router/web/api/Route/path-string
https://www.npmjs.com/package/path-to-regexp#optional
Exemplo simples de uma seção paginada de um site que pode ser acessada com ou sem um número de página.
fonte
<Match pattern />
agora é<Route path />
novamente, mas o sufixo do ponto de interrogação continua sendo a abordagem agora para lidar com parâmetros opcionais.players
,players/123
,players/123/edit
,players?unseen=true
. O parâmetro opcional?unseen
não funciona para mim. embora eu tenha tentado todas as correções desta discussão. Você poderia, por favor, ajudar com a string de caminho apropriada, que resolverá isso? Desde já, obrigado!example.com/search?query=test
tentar usar o próximo padrão/:search(search)
.Sintaxe de trabalho para vários parâmetros opcionais:
Agora, o URL pode ser:
fonte
para o roteador de reação V5 e superior, use a sintaxe abaixo para vários caminhos
fonte