2017-10-05 149 views
0

在下面的代碼片段葛亭路PARAMS在陣營路由器

<Route path='/:category' render={() => (
    <div> 
     {console.log(...)} 
    </div> 
)}/> 

我怎麼能輸出category paramater的價值?即用什麼代碼替換{console.log(...)}中的...

{console.log(props.match.params.category)} 

不工作,因爲match未定義。

+0

您的問題會更容易理解,如果你的標題沃爾德的東西ILKE「......在做出反應路由器」 –

回答

3
<Route path='/:category' render={({match: { params: { category } } }) => (
    <div> 
    {console.log(category)} 
    </div> 
)}/> 
+0

不工作:「 'category'未定義no-undef「 – user1934212

+0

您在路徑中指定的通配符在'props.match.params'對象上可用。 在這種情況下爲:'props.match.params.category' 如果路徑匹配路徑 如果不是這種情況,則問題是由其他原因導致 –

+0

Works。但爲什麼複雜的陳述({match:{params:{category}}})是必要的? – user1934212

0

試試這個

<Route exact path={"/:category"} render={(props) => (<div> 
     {console.log(props.match.params.category)} 
    </div>)}/> 
+0

不起作用:「無法讀取未定義的屬性'參數' – user1934212

0

檢查道具:

match.params.category

下面是一個例子

const Demo = ({ match }) => (
    <div> 
    <p>{match.path}</p> 
    <p>{match.url}</p> 
    <p>{match.params.category}</p> 
    </div> 
); 

而且也:Full example on codesandbox.io

0

試着這麼做

<Route path="/:category" render={({match}) => (<div> 
     {match.params.category} 
</div>)} /> 
+0

不起作用 - 」匹配「porperty未定義。 – user1934212

+0

嘗試從您的路線中刪除'精確'.. –

+0

我從來沒有在我的路線上有確切的說明符。 – user1934212