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

如何从doms的渲染中传递道具?

柯凯旋
2023-03-14

我知道要将道具传递给我的路线,我需要使用渲染。例如:

const BaseRouter = (props) => (

    <div>
        {console.log(props)} // this displays everything I need, including props.username
        <Route exact path='/room/' render={(props) => <Room {...props} />} />
    </div>
);

问题是,在我的Room组件中,唯一传递的道具是历史、位置和匹配(这些直接来自react-router-dom)。

我还尝试手动传递所需的道具:

<Route exact path='/room/' render={(props) => <Room {...props} username={props.username} />} />

但在房间里,我仍然没有定义道具用户名。有什么想法吗?

共有2个答案

宦书
2023-03-14

路由组件也包含子级。

const BaseRouter = (props) => (

    <div>
        {console.log(props)} // this displays everything I need, including props.username
        <Route exact path='/room/'>
          <Room {...props}/>
        </Route>
    </div>
);
张嘉佑
2023-03-14

您需要为变量指定不同的名称。执行render={(道具)=

const BaseRouter = (props) => (

    <div>
        <Route exact path='/room/' render={(routeProps) => <Room {...routeProps} {...props} />} />
    </div>
);

 类似资料:
  • 从节点(express)服务器端渲染时,我无法将初始道具传递到我的React组件 以下是我的组件的简短版本: 这是服务器端 在render()方法中尝试使用组件时,prop似乎没有传递给组件 有什么想法吗?

  • 问题内容: 我想从自己的组件中递归添加一个react组件。我看到了一个树组件的示例,该组件通过子TreeNode进行映射并以相同方式添加子节点。不幸的是,这对我根本不起作用。这个想法是要有一个简单的注释组件,而答复将重用相同的组件。 我收到以下错误消息: 未捕获的TypeError:无法构造“注释”:请使用“ new”运算符,此DOM对象构造函数不能作为函数调用。 这是传递给组件的JSON数据的示

  • 问题内容: 我知道我可以在渲染组件时通过。我也知道这种方法。但是问题是,由于我的组件不知道它的初始状态,并没有太大帮助。我做。所以我想在渲染时通过它。 这样的东西(伪代码): 我知道我可以使用a 作为初始状态,但这闻起来像是反模式。 我该怎么办? 编辑清晰度 想象一下我有一个组件。到我第一次渲染它时,初始状态对应于数据库中当前注释的快照。当用户包含评论时,此列表将更改,这就是为什么它应该是a 而不

  • 我有麻烦弄清楚如何传递JSX到我的还原状态,即用于全局使用的模态组件,其还原状态,其中一个参数是,这样的内容可以更新为包括JSX代码。 目前,我正在使其呈现正确的内容,但似乎函数调用不正确,并且我还遇到以下错误: invariant.js:38未捕获错误:对象作为React子对象无效(找到:具有键的对象{dispatchConfig、\u TargetList、isDefaultPrevented

  • 问题内容: 我试图找到定义可以以一般方式使用的组件的正确方法: 当然,可以想象并在父组件和子组件之间进行渲染的逻辑。 对于这个问题,这是一个虚拟的实现: 问题是,每当您用于定义包装器组件时,如何将某些属性传递给其所有子组件? 问题答案: 用新道具克隆Children 您可以使用React.Children遍历子级,然后使用React.cloneElement使用新的道具(浅合并)克隆每个元素,例如

  • 在代码示例中,在 当react遇到路由组件(react路由器的一部分)的渲染道具时,它会传递什么道具? 鉴于https://reactjs.org/docs/render-props.html ,render prop是一个函数prop,组件使用它来知道要渲染什么,是传递给props的值,该props埋在react router中的Route声明中