2017-10-05 154 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