reactjs - 如何在 react-router-dom v4.2.2 中获取当前路由

标签 reactjs routes react-router meteor-react

我想在基于 meteor 的 react 项目中获取当前路由路径,并且我想在外部创建登录页面..我该怎么做? 这是我的源代码

client/main.jsx

import React from "react";
import {meteor} from "meteor/meteor";
import {render} from "react-dom";
import {
    BrowserRouter as Router,
    Route
} from "react-router-dom"


import "./main.css";
import "../imports/ui/stylesheets/main.scss";

import Main from "../imports/ui/Main";


Meteor.startup(() => {
    return render((
        <Router>
            <Main/>
        </Router>
    ), document.getElementById("app-root"));
});

ui/main.jsx

import React, {Component} from "react";
import Link, {withRouter} from "react-router-dom"
import PropTypes from "prop-types";


/*@import Templates*/
import Sidebar from "./components/sidebar";

class Main extends Component {

    render() {

        return (
            <div className="container-fluid">
                <Sidebar/>
                //want current location path for here
            </div>
        );
    }
}


export default Main;

使用过的版本:

  • react v16.2.0
  • react-router-dom v4.2.2
  • react 路由器 v4.2.0

最佳答案

您必须将 react 路由器 HOC 应用到您的组件(文件末尾的 withRouter(Main))然后它会将一些 Prop 传递给您的组件,包括 match位置

match 属性包含 urlpath 以显示组件路由(path 将为您提供带有参数名称,例如“user/:id”,url 为您提供带有参数变量的真实 url,例如“user/1d6qsqsd56”)。

location.pathname 将在您调用它的任何地方给出实际的 url(在您的侧边栏组件中给出“/user/1d6qsqsd56”)。

class Main extends Component {
    render() {
        return (
            <div className="container-fluid">
                <Sidebar/>
                <p> Route path : {this.props.location.pathname} </p>
            </div>
        );
    }
}

export default withRouter(Main);

编辑:修正了不同路由器 Prop 的实际行为。

关于reactjs - 如何在 react-router-dom v4.2.2 中获取当前路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48910002/

相关文章:

javascript - 将 url slug 添加到 Next Js 路由获取 TypeError 路径应该是类型字符串获取类型对象

node.js - Express 路由器不调用返回空 obj 的 get 请求

reactjs - 如何使用 Spring Security 允许访问特定的 React Hash 路由?

reactjs - react 路由器对等依赖性错误

javascript - 设置部署路由

spring - 我可以通过 grails 的 spring 安全凭证来使用react吗?

reactjs - 在 React 中使用 this.props.children 时访问父上下文

python - 如何配置 Django Rest Framework + React

javascript - 使用 page.js 进行 ASP.NET 客户端路由

Asp.net url路由捕获asmx web服务调用