当前位置: 首页 > 知识库问答 >
问题:

反应路由器-访问路由内的道具

能远
2023-03-14

我是React Router的新手,我正试图通过一条路径将一些道具从我的父组件传递给子组件。

这是我的代码:

import React, {Component} from 'react';
import Sitefeedback from '../sections/comments/site-feedback';
import { BrowserRouter,Switch, Route  } from 'react-router-dom';

class Outer extends Component { 
    constructor(props) {
        super(props); 
    }

myFunction = () => {
    console.log("hello");
}

render() {
<div className="app-content-wrap-inner">   
    <BrowserRouter>
         <switch>
             <Route path='/site-feedback' render={(props) => (<Sitefeedback {...props} />)}/>
             <Route path='/logins' component={Logins} /> 
         </switch>
    </BrowserRouter>  
</div>
}
}

理想情况下,我希望能够从子组件触发myFunction。在做了一些研究后,我认为传递一个渲染选项而不是组件会传递它,但是它不会。知道如何将函数传递到路由组件中吗?

共有1个答案

卢俭
2023-03-14

我不知道你是否还需要帮助,但如果你需要,你可以这样做

 类似资料:
  • 考虑以下事项: 我有一个应用模板,一个HeaderTemboard,和参数化的路由集与相同的处理程序(在应用模板)。我希望在没有找到东西的时候能够服务404路线。例如, /CA/SanFrancisco应该由区域查找和处理,而 /SanFranciscoz应该是404。 下面是我如何快速测试路线的。 问题是 /SanFranciscoz总是由区域页面处理,但我希望它是404。此外,如果我向第一个路

  • 我有一个名为Dashboard的父组件,它被呈现为路由,如下所示: 我试着嘲笑每个人在嵌套路由上的解决方案,但我似乎无法解决我的问题。

  • 我在我的项目中使用react router,因为每个路由都有一个问题,在每个路由器路径的开始处都添加了“#”符号。。例如:http://localhost:3000/#/login 我想去掉那个标志,但我自己解决不了。 我的路由程序是在app.jsIM检查用户是否登录,如果没有登录,那么他将重定向到 /login页面。( 下面是app.js 否则他将登录,然后我将使用名为DefaultLayout

  • 问题内容: 我需要react-router v2 +的帮助,例如,当路由更改时,我必须更改navbar的类,因为它将 尝试在navbar组件中使用,但它显示 希望你的帮助 问题答案: 您的组件(如您在问题中所描述的)可能不是路由组件,对吗?通过我的意思是你在使用一个被加载特定路由配置。 仅可通过此类访问,因此您需要将其传递给您。 让我们举个例子: 您的路由器配置: 路线部分:

  • 在以下React应用程序中,有两个路由URLhttp://myapp 正确布线到布局构件。但是,URLhttp://myapp/login 也路由到布局组件,而不是登录。如果我将path=“/login”更改为“/sign”,它将正确路由到登录组件。 React路由器中的“/login”路径将其路由到路由是否有特殊之处?或者我设置这个路由的方式有错误吗?