2017-03-28 4 views
0

React Router 4.0.0にはRegexが付属しており、クエリーストリングのパラメータを検証します。 ただし、ES6テンプレートリテラルとは互換性がないようです。ここでReact Router v4 + Regexはテンプレートリテラルが嫌いです

は非常に単純な例です:

<BrowserRouter> 
    <Switch> 
    <Route Route path={routeConstant} component={MyComponent} /> 
    </Switch> 
</BrowserRouter> 

あなたは、以下の値をしようとした場合、あなたは最初の2つの定数は動作しますが、第三にはないことがわかります。

const root = 'folder' 
const routeConstant1 = '/folder/:id(\d+)' // <= /folder/21 matches 
const routeConstant2 = `/${root}/:id`  // <= /folder/21 matches 
const routeConstant3 = `/${root}/:id(\d+)` // <= /folder/21 does not match 

は(常にある)、おそらく非常に良い説明があるが、それは少し混乱感じているので、私はいくつかのポインタを本当にをいただければと思います。前もって感謝します。

答えて

0

私はその質問をあまりにも速く投稿しました。

答えは道テンプレートリテラルの仕事である:

ECMAScript 6 - Template Literals

は=>

のでrouteConstant3仕事を持っているソリューションは、このようにそれを書くことだけである「バックスラッシュは解釈されません」

const routeConstant3 = `/${root}/:id(\\d+)` 
関連する問題