首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应路由器不要渲染组件,那么他就有参数了

响应路由器不要渲染组件,那么他就有参数了
EN

Stack Overflow用户
提问于 2020-10-16 20:09:31
回答 1查看 35关注 0票数 0

大家好!

我的问题是什么?

我试着制作一个产品细节页面,然后我用这个:

代码语言:javascript
复制
 return (
   <Router>
      <div>
         <Header user={this.state.user} setUser={this.setUser} />
      </div>
       <div className="mx-10">
          <Switch>
            <Route exact path="/details/:slug" components={() => <Details />} />
            <Route exact path="/market/search/:categorie" component={DynamicSearchCategory} />
         </Switch>
       </div>
   </Router>
);

这个工作得很好,/market/search/:categorie,但是如果我想要得到这个页面,/details/:slug,我也尝试过这样做:/market/details/:slug

如果我得到产品详细信息路由,任何内容都不会显示,但是头会出现,但是我想呈现functional componentsclass components的组件会出现,那么什么也不会显示。

如果我这么做:

代码语言:javascript
复制
console.log(props)

// or

console.log(this.props) // for class components

控制台中没有显示任何错误。

我不知道我是否错过了什么,我也不明白为什么/market/search/:categorie运行得很好,而/details/:slug却没有。

这是我的组成部分,他们将收到道具:

class components

代码语言:javascript
复制
import React from 'react'

export default class Details extends React.Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() {
        console.log(this.props)
    }

    render() {
        return (
            <p>Details</p>
        )
    }
}

或在功能组件中:

代码语言:javascript
复制
import React from 'react'

export default function ProductDetails(props) {
    console.log(props.match.params.slug)
    return (
        <>
            <p>Product Details</p>
        </>
    )
}

编辑:

在我的领航员里,鼻涕虫出现了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-16 20:15:58

代码语言:javascript
复制
<Route exact path="/details/:slug" components={() => <Details />} />

=>

代码语言:javascript
复制
<Route exact path="/details/:slug" component={Details}/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64395777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档