首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在BrowserRouter中,<Router>只能有一个子元素

在BrowserRouter中,<Router>只能有一个子元素
EN

Stack Overflow用户
提问于 2018-03-01 06:31:44
回答 2查看 216关注 0票数 0

我正在尝试将路由器上下文传递给sidebar组件。我收到此错误。在react中,<Router>可能只有一个子元素错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return (
  <BrowserRouter>
    {({ router }) => (
      <div style={{ display: 'flex', flex: '1' }}>
        {isAuthenticated &&
        <Sidebar
          router={router}
          rooms={currentUserRooms}
          onLogoutClick={this.handleLogout}
        />
        }
        <MatchAuthenticated exactly pattern="/" component={Home} {...authProps} />
        <RedirectAuthenticated pattern="/login" component={Login} {...authProps} />
        <RedirectAuthenticated pattern="/signup" component={Signup} {...authProps} />
        <MatchAuthenticated pattern="/r/:id" component={Room} {...authProps} />
        <Switch component={NotFound} />
      </div>
    )}
  </BrowserRouter>
);
EN

回答 2

Stack Overflow用户

发布于 2018-03-01 07:47:38

正确的方法是使用context,而不是将router作为属性传递。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return (
  <BrowserRouter>
      <div style={{ display: 'flex', flex: '1' }}>
        {isAuthenticated &&
        <Sidebar
          rooms={currentUserRooms}
          onLogoutClick={this.handleLogout}
        />
        }
        <MatchAuthenticated exactly pattern="/" component={Home} {...authProps} />
        <RedirectAuthenticated pattern="/login" component={Login} {...authProps} />
        <RedirectAuthenticated pattern="/signup" component={Signup} {...authProps} />
        <MatchAuthenticated pattern="/r/:id" component={Room} {...authProps} />
        <Switch component={NotFound} />
      </div>
  </BrowserRouter>
);

像这样定义Sidebar

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react'
import PropTypes from 'prop-types'

const Sidebar = (props, context) => {...}

Sidebar.contextTypes = {
    router: PropTypes.object,
}

然后从Sidebar访问context.router

票数 0
EN

Stack Overflow用户

发布于 2018-03-02 01:07:10

您可以从react-router使用withRouter HOC。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react'
import PropTypes from 'prop-types'
import { withRouter } from 'react-router'

const Sidebar = withRouter((props, context) => {...})

参考:https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/withRouter.md

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49043862

复制
相关文章
Jquery 获取第一个子元素
<ul>   <li>John</li>   <li>Karl</li>   <li>Brandon</li> </ul> 获取第一个元素:  $("ul li:first-child") <div id="getfirst">    <ul>     <li>John</li>     <li>Karl</li>     <li>Brandon</li>   </ul> </div> 获取第一个元素:  $("#getfirst").find("ul li:first-child") 或$("#getfi
庞小明
2018/03/07
3.5K0
145. 精读《React Router v6》
React Router v6 alpha 版本发布了,本周通过 A Sneak Peek at React Router v6 这篇文章分析一下带来的改变。
黄子毅
2022/03/14
1.3K0
react-router-dom 混合化路由
混合化路由 HashRouter 这个标签只能有一个子元素。 import React from 'react' import { Select } from 'antd' import { BrowserRouter, Route, Router, Link, HashRouter, Switch, Redirect } from 'react-router-dom'; import homepage from './homepage' import qingpage from './qing.js'
用户4344670
2020/02/13
6170
react-router-dom 混合化路由
只出现一次的元素
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
木瓜煲鸡脚
2020/09/24
8320
react-router4
react-router是一些封装好的组件用于前端路由,当我们点击的时候会出现一个虚拟的路由,并不会做页面的全刷新,实现不同组件之间的切换和跳转。(当然react-router里面把history.js这个库做了封装,history.js是基于window.history做的封装,所以react-router可以调用一些会话历史, history 知道如何去监听浏览器地址栏的变化, 并解析这个 URL 转化为 location 对象, 然后 router 使用它匹配到路由,最后正确地渲染对应的组件。)
_kyle
2020/08/24
1.5K0
react-router4
flex布局设置单个子元素靠右显示
在css布局中,如果父元素是flex布局,子元素按照默认顺序排序,这种情况下如何实现让某个子元素靠右显示?整理了两种方法分享给大家: 方法1:
4O4
2022/09/20
3.7K0
jquery获取第几个子元素_js获取元素的指定子元素
通过children方法,children(“input:first-child”)
全栈程序员站长
2022/08/03
27.2K0
React Router v4教程:为你的 React 应用创建路由[每日前端夜话0x59]
翻译:疯狂的技术宅 原文:https://www.edureka.co/blog/react-router/
疯狂的技术宅
2019/05/09
2K0
React Router v4教程:为你的 React 应用创建路由[每日前端夜话0x59]
原生JS如何获取当前元素属于父元素第几个子元素
原生JS有一个常见的小技巧那就是通过元素的previousSibling 属性,额外需要注意的是该属性会遍历text节点,即回车键。
IT工作者
2022/01/26
10.4K0
百度前端必会react面试题汇总
通常,render props和高阶组件仅渲染一个子组件。React团队认为,Hooks 是服务此用例的更简单方法。
flyzz177
2022/09/14
1.6K0
await 只在 async 函数中工作
关于 promise 的一种更优雅的写法 async/await 中,await 只会出现在 async 函数中,我们使用 async/await 时,几乎不需要 .then,因为 await 为我们处理等待;但是在代码的顶层,当我们在 async 函数的外部时,我们在语法上是不能使用 await 的,所以通常添加 .then/catch 去处理最终结果或者 error。
前端开发博客
2020/11/04
1.5K0
await 只在 async 函数中工作
React-Router V6 使用详解
2.去除Switch中的<Redirect>,用react-router-dom中的Redirect 替代,或者用 <Navigate> 实现
程序狗
2021/12/17
3.8K0
手写React-Router源码,深入理解其原理
上一篇文章我们讲了React-Router的基本用法,并实现了常见的前端路由鉴权。本文会继续深入React-Router讲讲他的源码,套路还是一样的,我们先用官方的API实现一个简单的例子,然后自己手写这些API来替换官方的并且保持功能不变。
蒋鹏飞
2020/10/15
1.6K0
手写React-Router源码,深入理解其原理
滴滴前端二面常考react面试题(持续更新中)_2023-03-01
refs允许你直接访问DOM元素或组件实例。为了使用它们,可以向组件添加个ref属性。
用户10376779
2023/03/01
4.5K0
React Router v4 完全指北
React Router 事实上是React官方的标准路由库。当你在一个多视图的React应用中来回切换,你需要一个路由来管理那些URL。React Router 专注于此,同步保持你应用的UI和URL。
疯狂的技术宅
2019/03/27
2.8K0
React Router v4 完全指北
阿里前端二面react面试题_2023-02-28
在Redux中使用 Action的时候, Action文件里尽量保持 Action文件的纯净,传入什么数据就返回什么数据,最妤把请求的数据和 Action方法分离开,以保持 Action的纯净。
用户10358021
2023/02/28
1.9K0
React Router 邦邦两拳🥊 🥊
这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」 简介
用户4793865
2023/01/12
3.4K0
react 路由完整版「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130459.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/11
1.3K0
react ---- Router路由的使用和页面跳转
http://react-guide.github.io/react-router-cn/docs/Introduction.html
小蔚
2019/08/27
2.9K0
react ---- Router路由的使用和页面跳转
react-router 入门笔记
React-router 笔记 官方文档 基本思路 react-router 通过react 组件的方式实现, 路由相关的数据,通过props传递给组件调用, 路由层级关系, 通过标签嵌套实现 基础标签 BrowserRouter : 路由容器 该组件只能包含单个元素 Route : 组件渲染出口 必须包含在 BrowserRouter 中 exact 精确匹配 Link : 跳转链接 必须包含在 BrowserRouter 中 基本使用 // react-router-demo import
copy_left
2019/08/21
1.6K0

相似问题

错误:<Router>只能有一个子元素。包含开关,以前使用过此代码

21

ConnectedRouter A <Router>可能只有一个子元素,但它有一个子元素

10

<Router>反应中可能只有一个子元素错误。

23

react-router-dom BrowserRouter在构建后无法正常工作

111

一个<Router>可能只有一个子元素

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文