首先我要感谢所有聪明的程序员。更新后反应路由器Dom我面临这个问题。在这里我想提到一件事,我是一个“类组件”爱好者。
然而,这是我反应的基础组件。
import React, { Fragment, Component } from 'react'
import axios from 'axios'
import { Col , Row} from 'react-bootstrap'
import { Link } from 'react-router-dom'
export default class Blog extends Component {
constructor(props) {
super(props)
this.state = {
data:[]
}
}
componentDidMount()
{
axios.get("https://jsonplaceholder.typicode.com/posts")
.then((response)=>{
if(response.status===200)
{
this.setState({
data:response.data
})
}
})
.catch((error)=>{})
}
render() {
const allData = this.state.data;
const blogFull = allData.map((val)=>{
var title = val.title;
var body = val.body;
var id = val.id;
return(
<Col key={id} lg={4}>
<Link to={"/post/"+id}><h1>{title}</h1></Link>
<p>{body}</p>
</Col>
)
})
return (
<Fragment>
<Row>
{blogFull}
</Row>
</Fragment>
)
}
}
这是我的下一个组件
import axios from 'axios'
import React, { Component, Fragment } from 'react'
import { useParams } from 'react-router'
export default class Post extends Component {
constructor(props) {
super(props)
this.state = {
mydata:[],
}
}
componentDidMount()
{
axios.get("https://jsonplaceholder.typicode.com/posts/")
.then((response)=>{
if(response.status===200)
{
this.setState({
mydata:response.data
})
}
})
.catch((error)=>{
})
}
render() {
const dataAll = this.state.mydata;
return (
<Fragment>
data retriving
<h1>{dataAll.title}</h1>
<p>{dataAll.body}</p>
</Fragment>
)
}
}
我的路线在这里:
<Routes>
<Route exact path="/" element={<Blog/>}/>
<Route exact path="/post/:id" element={<Post/>}/>
</Routes>
有人能告诉我,我怎么能通过它的url参数从基础组件中获取后组件中的数据?"匹配"对象在当前的react-router-dom更新中不工作。我需要类组件的帮助。
在react router dom v6中,路由
组件不再具有路由道具(历史
、位置
和匹配
),当前的解决方案是使用这些组件的react挂钩“版本”在渲染的组件中使用。不过,React钩子不能用于类组件中。
要使用类组件访问匹配参数,您必须将其转换为功能组件,或者使用路由器推出您自己的自定义高阶组件,以注入“路由道具”,就像
路由器
HOC from反应路由器dom
v5.x中的那样。
我将不介绍如何将类组件转换为函数组件。下面是一个使用路由器的自定义示例:
const withRouter = WrappedComponent => props => {
const params = useParams();
// etc... other react-router-dom v6 hooks
return (
<WrappedComponent
{...props}
params={params}
// etc...
/>
);
};
并用新的HOC装饰组件。
export default withRouter(Post);
这将为类组件注入一个
params
prop。
this.props.params.id
问题内容: 如教程中所述,我目前正在定义正则表达式以捕获url中的参数。我如何从url作为对象的一部分访问参数?我当前返回一个空对象。 我想学习如何在没有库的情况下执行此操作,以便可以更好地了解Django。 问题答案: 当url如:时,你将使用。 是你想要的参数,并且是默认值(如果未找到)。 但是,如果你只是配置,则你从中捕获的内容将作为参数(或命名参数)传递给函数。 如: 然后在你views.
我有一个react组件,它加载在路由上 我需要从components构造函数中的url访问一个参数 我该怎么做呢? 我可以这样访问它吗:
问题内容: 我需要构建一个GWT应用程序,该应用程序将由具有特定URL参数的外部应用程序调用。 例如: http://www.somehost.com/com.app.client.Order.html?orderId=99999。 如何在GWT应用程序中捕获orderId参数? 问题答案: 尝试, PS GWT可以调用本机javascript,这意味着如果javascript可以完成任务,那么G
//文章页面 //应用 //导航栏页面 **我试图使用变量“name”传递URL参数,但当我访问ArticlePage时,我得到404:Not Found(我的NotFound页面的内容)。我试图使用ArticlePage中的props(match)获取“name”变量的值,但无法呈现它。反应相当新,任何提示或解决方案都将不胜感激。我正在使用React v6**
本文向大家介绍React-Router怎么获取URL的参数?相关面试题,主要包含被问及React-Router怎么获取URL的参数?时的应答技巧和注意事项,需要的朋友参考一下 在之前的版本中,可以通过 this.props.location.query.bar 进行获取 在 v4 中,通过 this.props.location.search 获取,不过需要进行处理
例如,我重定向在我的水疗localhost:3000/ProductPage/014我如何采取'014'值我的反应变量?