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 components
则class components
不会显示任何内容,否则将不会显示任何内容
如果我这样做:
console.log(props)
// or
console.log(this.props) // for class components
控制台中不会显示任何内容,没有任何错误。
我不知道我是否错过了什么,我不明白为什么/market/search/:categorie
工作很好但不是/details/:slug
我的组件将接收道具:
class components
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>
)
}
}
或者在功能组件中:
import React from 'react'
export default function ProductDetails(props) {
console.log(props.match.params.slug)
return (
<>
<p>Product Details</p>
</>
)
}
编辑:
在我的导航器中出现了蛞蝓。
解决方案
<Route exact path="/details/:slug" components={() => <Details />} />
=>
<Route exact path="/details/:slug" component={Details}/>
推荐阅读
- docker - 是否可以通过 Docker 设置 IBM 数据阶段?
- android - Android TextView 在 Kotlin 中显示致命错误
- c# - Linq 按孩子的数量查询顶级父母,包括这个数字
- promise - 如何在一系列承诺中等待子组件中的事件?
- c - 打印数组中重复数的最大计数
- time-series - 在非常广泛的数据中找到相关的观察结果
- reactjs - 类型错误:this.props.obj 未定义
- r - 计算 R 中的隐含波动率时出错
- javascript - 将类方法作为函数参数传递,同时保持此上下文
- firebase - Firestore 规则:一般写入规则会覆盖更精细的更新/删除/创建规则吗?