如何在单独的组件中使用url参数

萨汉德

我过去两天一直在学习React,但是在理解URL参数方面遇到了麻烦。

假设我要一条路线mysite.com/details/1023路线的定义如下:

<Route path="/details/:id" render={() => <DishDetails />}/>

现在,我希望DishDetails在另一个文件中定义对象能够使用idvalue 1023我怎样才能做到这一点?我找到了有关路由网址参数的教程,但都没有说明如何实现此目的的教程。

这是我DishDetails现在的样子:

import React, {Component} from "react";
import "./DishDetails.css";
import {Link} from "react-router-dom";

class DishDetails extends Component {
    constructor(props) {
        super(props);
        this.state = {
            id: /*url param*/,
        };
    }
    render() {
        return this.state.id;
    }
}

export default DishDetails;

我在哪里可以获得idDishDetails?我试过了:

import React, {Component} from "react";
import "./DishDetails.css";
import {Link} from "react-router-dom";

class DishDetails extends Component {
    constructor(props) {
        super(props);
        this.state = {
            id: match.id,
        };
    }
    render() {
        return this.state.id;
    }
}

但是match是不确定的。

弗洛里安戈斯

通过组件属性将您的组件传递到Route

<Route path="/details/:id" component={DishDetails} />

如果您这样做了,match则可以在道具中找到。

如果必须保持渲染路线的方式,可以将渲染道具手动传递到组件:

<Route path="/details/:id" render={(props) => <DishDetails {...props} />}/>

您可以在此处找到有关react-router的完整文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在读取中使用单独的参数/变量

如何在 React 中使用 URL 参数?

如何在React-Router的组件中使用参数?

如何在组件中使用动态套接字URL?

如何在单独的类中使用getContentResolver()

如何在单独的线程中使用函数

如何在单独的QThread中使用QTimer

如何在单独的文件中使用bottomNavigationBar?

如何在Angular的GET请求中使用URL参数?

如何在Observable.forkJoin()中使用动态参数(URL)

如何在API Gateway中使用路径参数创建URL

如何在android中使用url发送参数并获得响应

如何在Sapper / Svelte中使用多个URL参数

如何在IP本身中使用额外的参数更改url?

如何在表单验证中使用通过url传递的参数

如何在NestjS中使用可选的url参数

如何在 __init__ 中使用默认参数创建单独的类实例

如何在功能组件中使用React Typescript键入任何参数

如何在Angular中使用不同的参数更新相同的组件

如何在 ReactJS 中使用参数正确调用父组件中的事件处理函数?

我如何在angular2中使用给定参数redirectTo子组件

ReactJS Router-如何在带参数的功能组件中使用历史推送?

如何在角度2中对登录组件使用单独的布局?

如何在组件中使用状态?

如何在角度组件中使用debounceTime?

如何在 React 组件中使用 forwardRef?

如何在Angular组件中使用枚举

如何在Dart中使用Bower组件?

如何在vue组件中使用vuex?