Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >反应-路由器一些不匹配的路由

反应-路由器一些不匹配的路由
EN

Stack Overflow用户
提问于 2022-01-04 16:58:20
回答 2查看 1K关注 0票数 1

我有私人航线

app- file .app文件

代码语言:javascript
运行
AI代码解释
复制
const routes = [
{ path: '/', component: HomePage },
{ path: '/articles/:id', component: Article },
{ path: '/expert', component: Experts },
...
{ path: '/requests', component: ComRequest },
{ path: '/admin', component: AdminHomePage },]

export default routes.map(route => {
 return {
  ...route,
  component: route.component
 }
})

如果不匹配重定向到/的任何路由,则将应用程序路由作为数组进行迭代。

代码语言:javascript
运行
AI代码解释
复制
import routes from 'app-routes'

return(
 <Switch>
  {routes.map(({ path, component }) => (
    <PrivateRoute
     exact
     key={path}
     path={path}
     component={component}
    />
   ))}
  <Redirect to={'/'} />
 </Switch>)

PrivateRoute.js组件文件检查用户是否重定向到/login

代码语言:javascript
运行
AI代码解释
复制
function PrivateRoute({ component, ...rest }) {
 return (
  <Switch>
   <Route
    {...rest}
    render={(matchProps) => getUser()
     ?
      <WithLayout
       {...matchProps}
       component={component}
       layout={MainLayout}
      />
      :
      <Redirect to={{ pathname: '/login', state: { from: matchProps.location } }} />}
   />
  </Switch>
 )
}

export default PrivateRoute

getUser()函数返回对象字符串{userdata}

getUser.js

代码语言:javascript
运行
AI代码解释
复制
export function getUser() {
 return localStorage.getItem('user')
}

在浏览器中某些/articles/expert路由呈现视图,但随机或逻辑无法确定其他路由如何与/requests/admin路由不匹配,并重定向到/E 219

有时,每条路线都重定向到/

如果我评论<Redirect to={'/'}/>,有些路由会呈现白色屏幕

和另一件恼人的事情是,刷新时的总是重定向工作到/ url,而不是停留在匹配的路由上。

app.js中,检查用户是否找到返回Content,如果没有,用户返回NotAuthenticatedContent路由

代码语言:javascript
运行
AI代码解释
复制
const { user } = useAuth()
if (user && user.id) {
  return <Content />
 } else
  return <NotAuthenticatedContent />
};

user从AuthContext进口

代码语言:javascript
运行
AI代码解释
复制
function AuthProvider(props) {
 const [user, setUser] = useState()
 const { user: currentUser } = useSelector((state) => state.account)
 useEffect(() => {
  (async function () {
   if (currentUser && currentUser.jwt)
     setUser(currentUser.user)
   })();
 }, []);
 return (<AuthContext.Provider value={{user}} {...props}/>)
}
const AuthContext = createContext({})
const useAuth = () => useContext(AuthContext)
export {AuthProvider,useAuth}

我注意到history.push('/requests')可以转到/requests页面,但是当我输入url部分重定向到/时

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-17 16:55:23

我把console.log()放得到处都是,然后发现是app.js

代码语言:javascript
运行
AI代码解释
复制
const { user } = useAuth()
if (user && user.id) {
 console.log('user logged in')
 return <Content />
} else
 console.log('user not logged in')
 return <NotAuthenticatedContent/>
}

在浏览器中,user的第一个值或初始值为null,而在控制台中,用户未登录,后来又打印了登录的用户,因此user检查是错误的,然后返回具有与/articles/:id,/expert相同路由的<NotAuthenticatedContent/>

票数 1
EN

Stack Overflow用户

发布于 2022-01-14 16:12:53

使用基于web的技术,您需要习惯使用浏览器开发工具。在那里,您将看到许多关于您的空页面的错误。

这些错误主要是由于react、react路由器、中的主要版本更改,以及您如何尝试使用npm安装它们的部分原因。

要解决您的问题,首先,确保您有第五个版本的这些工具。尝试在没有版本的情况下安装将导致安装最新版本。当您对应用程序的功能很有信心时,切换到v6,但是要做好大量更改的准备。

代码语言:javascript
运行
AI代码解释
复制
npx create-react-app@5 appName
npm install react-router@5
npm install react-router-dom@5

如果版本不匹配,您将在控制台上获得不兼容导入的错误,但其中许多错误仅在浏览器上运行,因此打开开发人员工具查看其他错误。

我试过你的代码片段。除了这些版本不兼容和一些逻辑错误之外,它们没有问题。

  • 除非真正更改结构,否则不需要从路由映射的新对象导出一个新对象,因此export default routes就足够了。
  • 您没有一个直接的路线登录页面。在content.js的交换机组件和私有路由映射之外,添加<Route exact key="/login" path="/login" render={Login}/>
  • 除了这些之外,请确保您的路线不隐藏某些部分匹配。

我已经将我的示例应用程序上传到了github:react v5-简单-登录-路由-布局上。为此,我使用了上述命令,删除了源文件夹中的所有内容( index.*App.js除外),复制了OP的代码片段,只编辑了上面提到的部分,添加了缺少的页面组件和登录/注销页面,以清除本地存储和临时布局。

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

https://stackoverflow.com/questions/70586715

复制
相关文章
什么是路由器,路由器用来做什么、路由器的工作过程等
雷大亨
2018/01/01
3.1K0
什么是路由器,路由器用来做什么、路由器的工作过程等
dubbo路由代码分析4(script路由器file路由器)
接上篇 https://cloud.tencent.com/developer/article/1109564 这篇分析下,script类型和file类型路由器。 目前,script类型和file路由规则,还不能通过dubbo的admin管理页面添加。可以通过java api添加。具体看这里 先说,script路由器,它由ScriptRouterFactory路由工厂创建如下: public class ScriptRouterFactory implements RouterFactory {
技术蓝海
2018/04/26
1.7K0
dubbo路由代码分析4(script路由器file路由器)
访问蒲公英路由器的上级路由
当通过蒲公英访问端在外网挂v回家的时候,发现想访问蒲公英路由器的上级路由,但是却发现无法访问。
灯珑LoGin
2022/10/31
1.2K0
路由器题目
1. 某公司网络拓扑如下图所示,路由器R1通过接口E1、E2分别连接局域网1、局域网2, 通过接口L0连接路由器R2,并通过路由器R2连接域名服务器与互联网。R1的L0接口的IP地址是 202.118.2.1;R2的L0接口的IP地址是202.118.2.2,L1接口的IP地址是130.11.120.1,E0接口的 IP地址是202.118.3.1;域名服务器的IP地址是202.118.3.2。
week
2018/08/27
2.4K0
路由器题目
路由器原理及常用的路由协议、路由算法
路由器工作在OSI模型中的第三层,即网络层。路由器利用网络层定义的“逻辑”上的网络地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各个网络的独立性。路由器不转发广播消息……
网络技术联盟站
2023/03/13
1.7K0
路由器原理及常用的路由协议、路由算法
正则匹配路由
  在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要用到正则匹配,根据自己的规则去限定请求参数再进行访问
汪凡
2019/03/01
3.4K0
React路由的模糊匹配与严格匹配
模糊匹配是React Router的默认匹配方式。在模糊匹配中,路由会根据URL的路径部分进行匹配。当URL的路径部分与路由的路径部分部分匹配时,就会触发匹配。
堕落飞鸟
2023/05/20
2.1K0
路由器的无线信道
调整路由器的无线信道,增加网速。传输!路由器信号频率分别:2.4GHz,5GHz频率,你的邻居99%的用2.4GHz。包括你2.4GHz只是一个统称,真实的频率:412-461这段数字被称为13个信道;是不是有点听不懂?比如相当于13个车道高速公路,大家默认的都是设置。你和其他网络分到第3条和8条高速公路,那其他车到还的空着呢。那你想一想,能不卡吗?能不堵车吗?这也到网络繁忙,频率缓冲,的时候一到晚上卡的原因?说明白了,就是互相干扰。
hide
2022/12/30
1.9K0
路由器的无线信道
netcore无线路由器_netcore路由器怎么设置
大家好,又见面了,我是你们的朋友全栈君。 IdentityServer里有各种Endpoint,如TokenEndpoint,UserInfoEndpoint,Authorize Endpoin
全栈程序员站长
2022/09/23
3.1K0
如何入侵路由器
对于大多数开启防火墙的路由器来说,入侵的第一步就是接入路由器局域网络(LAN),这一步有好多种方法可以尝试:Wifi万能钥匙、破解WEP加密、破解WPS PIN码、使用字典爆破Wifi密码等等。而对于公共场合的路由器来说,这一步就不是问题了,Wifi密码是公开的,任何人都可以直接接入。
知识与交流
2023/03/25
2.6K0
如何入侵路由器
路由器刷固件
周日下午闲来无聊准备折腾一下宿舍里的垃圾路由器斐讯k2 原本只是听说过,但没自己弄过,尝试着自己刷一下,我这里尝试的是高恪(读作kè) 本来以为要去找远景软件,找了一圈神他妈远景,是恩山
鸿鹄实验室
2021/04/15
2.7K0
路由器刷固件
路由器是如何工作的?
路由器的英文是 Router,也就是「找路的工具」。找什么路?寻找各个网络节点之间的路。
C语言中文社区
2022/05/31
9440
路由器是如何工作的?
网关和路由器的区别
  顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。            按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。        那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。        所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。        路由器(Router)是一种负责寻径的网络设备,它在互连网络中从多条路径中寻找通讯量最少的一条网络路径提供给用户通信。路由器用于连接多个逻辑上分开的网络。对用户提供最佳的通信路径,路由器利用路由表为数据传输选择路径,路由表包含网络地址以及各地址之间距离的清单,路由器利用路由表查找数据包从当前位置到目的地址的正确路径。路由器使用最少时间算法或最优路径算法来调整信息传递的路径,如果某一网络路径发生故障或堵塞,路由器可选择另一条路径,以保证信息的正常传输。路由器可进行数据格式的转换,成为不同协议之间网络互连的必要设备。        路由器使用寻径协议来获得网络信息,采用基于“寻径矩阵”的寻径算法和准则来选择最优路径。按照OSI参考模型,路由器是一个网络层系统。路由器分为单协议路由器和多协议路由器。        比如你说的那几个,说的通俗一点:如果给你一个IP地址为116.24.143.126,子网掩码255.255.255.224,也就是在这段地址中有32个地址,其中30个可用,去掉网关,还有29个可分配.地址是从116.24.143.96-127,第一个可用的IP是97,最后一个是126,这个例子里,你拿126做网关了,所以从97至125这29个地址是可被你分配的. 同理.116.24.143.126,掩码255.255.255.0,那你就有253个地址可被你分配使用.也就是1-125,127-254. 116.24.143.166,掩码是255.255.255.128,就是有125个地址可被你分配使用.即129-165,167-254. 每段地址有多少可用,不是看IP的最后一位数,而是看子网掩码
bear_fish
2018/09/20
9.4K0
路由器工作模式
“通过路由器将运营商提供的有线网络转换成WiFi信号,从而实现家庭用户共享上网。”
hide
2022/12/30
1.9K0
路由器工作模式
路由器转发算法
分组转发算法 (1) 从数据报的首部提取目的主机的IP地址D, 得出目的网络地址为N。 (2) 若网络N 与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
张俊怡
2018/04/24
1.3K0
Access不匹配查询
大家好上节介绍了重复项查询,继续介绍选择查询中的不匹配项查询,不匹配查询也是在查询向导中创建。
无言之月
2020/06/04
2.1K0
无线路由器(SOHO路由器/IP分享器)的常用工作模式
本文介绍了无线路由器(SOHO路由器/IP分享器)的常用工作模式,包括AP模式、无线客户端模式、桥接模式、AP桥接模式、中继器模式和WISP客户端路由模式、WISP中继器模式。这些模式可以适应不同的网络环境和需求,提高网络性能和可靠性。
雷大亨
2018/01/01
2.2K0
无线路由器(SOHO路由器/IP分享器)的常用工作模式
你真的会玩路由器?哪些路由器固件值得刷?
智能路由器的涌现,让“刷路由器”这个概念突然也火了起来。刷路由器到底是怎么一回事?今天我们一起来谈谈路由器固件的那些事吧。
Zip
2023/03/28
3.3K0
你真的会玩路由器?哪些路由器固件值得刷?
RomBuster - 路由器攻击
让我们尝试使用 Shodan 搜索引擎来利用 Internet 上的路由器,我们将使用它-t来快速利用。
Khan安全团队
2021/07/08
1.2K0
RomBuster - 路由器攻击
点击加载更多

相似问题

路由不匹配反应路由器(-redux)

25

嵌套反应路由器:不匹配任何路由

22

反应-路由器在有效路由上不匹配

34

一些不匹配的路由-路由器4

13

反应路由器-没有匹配的任何路由

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档