2017-11-21 22 views
0

ルート(ルート)が存在する場合に、ルータ(v4)を反応させる方法を教えてくださいにはが含まれていますか?反応ルータv4で経路を定義するときに、一致パラメータに "contains"ロジックを定義します

例:

すべて休閑ルートが一致している必要があり、パターンが/users/:idと言う:

  • /users/111
  • home/users/111
  • article/123/users/111
  • /users/111/article/123
  • home/users/111/article/123

EDIT:ルールはすべての可能なルートを列挙するニーズせず、すなわち、動的に適用されるべきである:/.*\/users\/:id.*/

答えて

0

私はあなたのスイッチを使用していると仮定?あなたは

<Route path="/" component={Home}/> 

正確な使用いけない場合にのみ、このルートを返します空のパス名を残し

<Route exact path="/" component={Home}/> 

をすれば

は、すべてのパスは、このルートを返します。

同じルートを返す複数のパス名を使用する場合は、好きなものを正確に付け加えて複数のRouteを使用できます。パス名が空である場合、これはHomeを返すウィル

<Router history={history}> 
    <Switch> 
     <Route exact path="/" component={Home}/> 
     <Route exact path="/:id" component={Home}/> 
     <Route path="/:id/article" component={Home}/> 
    </Switch> 
</Router> 

、123、123 /記事や "あなたはここに置くものは何でも" 123 /記事/:よう

何か。

あなたのニーズに合っていない場合は、スイッチの最後にRouteを置くことで回避策を作成し、常にHomeを返します。必要な場合は、一致するものを渡します。次に、ホームコンポーネントを使用して独自のロジックを挿入できます。

const PageRouter = ({match}) => { 
    if (match.params.someParameter !== "legit") { 
     history.replace("/not-found"); 
    } 
    return <HomePage/> 
}; 
関連する問題