首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在react路由器中使用“在新选项卡中打开链接”打开时,无法获取位置状态

在React Router中,当你使用<Link>组件并设置target="_blank"属性来在新标签页中打开链接时,默认情况下,新标签页无法访问原页面的URL状态(即location.state)。这是因为出于安全考虑,浏览器不允许跨标签页访问数据。

基础概念

  • React Router: 是React应用程序的路由解决方案,用于管理URL和页面内容的映射关系。
  • <Link>组件: 用于创建导航链接,可以设置to属性指定目标路径。
  • target="_blank": HTML属性,用于在新标签页中打开链接。
  • location.state: 在React Router中,可以通过location对象传递状态信息。

相关优势

  • 安全性: 浏览器限制跨标签页访问数据,以防止恶意脚本窃取信息。
  • 用户体验: 用户可以在新标签页中查看内容,而不会影响当前页面的状态。

类型

  • 内部链接: 在同一应用内导航。
  • 外部链接: 导航到其他网站或应用。

应用场景

  • 当你需要在新标签页中打开一个链接,并且希望传递一些状态信息时。

问题原因

由于浏览器的同源策略和安全限制,新标签页无法直接访问原页面的location.state

解决方法

  1. 使用URL参数: 将状态信息编码到URL查询参数中。
  2. 使用URL参数: 将状态信息编码到URL查询参数中。
  3. 使用window.postMessage: 在新标签页加载完成后,通过postMessage API传递状态信息。
  4. 使用window.postMessage: 在新标签页加载完成后,通过postMessage API传递状态信息。

参考链接

通过上述方法,你可以在新标签页中传递状态信息,同时确保应用的安全性和用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • react-dnd使用总结一】拖放完成后获取放置元素drop容器的相对位置

    工具函数-根据元素的起始位置和最终位置,计算相对于某元素的位置 export interface IPosition { left: number; top: number; } /** *...根据元素的其实位置和最终位置,计算相对于某元素的位置 * @param initialPosition 拖动元素相对于屏幕左上角的起始位置(偏移量) * @param finalPosition 拖放完成后当前节点相对于屏幕左上角的位置...initialPosition: any, finalPosition: any, containerEle: HTMLDivElement, ): IPosition => { // 获取容器的位置信息...finalX) - dropTargetPosition.left; return { left: newXposition, top: newYposition, }; }; drop...回调函数 drop(target: any, monitor: DropTargetMonitor) { console.log(target, monitor); const position

    4.2K10

    开发一个在线 Web 代码编辑器,如何?今天来教你!

    使用 useState 钩子,我们将该 state 存储单击该选项卡按钮当前打开的编辑器选项卡的名称。...让我们继续编写函数,该函数将使用 setOpenedEditor 来更改单击选项卡按钮的 state 值。 注意:这里可能不会同时打开两个选项卡,所以我们在编写函数需要考虑到这一点。...使用它,我们将能够在有更改的任何时候获取编辑器的值并将其保存到编辑器的状态。 value = {value} 这只是编辑器在任何给定时间的内容。...同时,选择标签,我们传递了 onChange 属性来跟踪和更新主题状态。每当在下拉列表中选择一个选项,该值都是从返回给我们的对象获取的。...接下来,我们使用 state hook 的 setTheme 将值设置为 state 持有的值。 至此,我们已经创建了下拉菜单,设置了主题的状态,并编写了函数来使用值设置状态

    12.1K30

    【实战】快来和我一起开发一个在线 Web 代码编辑器

    使用 useState 钩子,我们将该 state 存储单击该选项卡按钮当前打开的编辑器选项卡的名称。...让我们继续编写函数,该函数将使用 setOpenedEditor 来更改单击选项卡按钮的 state 值。 注意:这里可能不会同时打开两个选项卡,所以我们在编写函数需要考虑到这一点。...使用它,我们将能够在有更改的任何时候获取编辑器的值并将其保存到编辑器的状态。 value = {value} 这只是编辑器在任何给定时间的内容。...同时,选择标签,我们传递了 onChange 属性来跟踪和更新主题状态。 每当在下拉列表中选择一个选项,该值都是从返回给我们的对象获取的。...接下来,我们使用 state hook 的 setTheme 将值设置为 state 持有的值。 至此,我们已经创建了下拉菜单,设置了主题的状态,并编写了函数来使用值设置状态

    75620

    React Native调试心得

    心得:使用真机调试,你需要确保你的手机和电脑处在同一个网段内,即它们实在同一个路由器下。...在窗口的最下方的按钮可以遇到异常(exception)强制暂停。源码显示单独的标签页,通过点击 打开文件导航面板,导航栏中会显示所有已打开的脚本文件。...查看js文件 如果你想在开发者工具上预览你的js文件,可以在打开Sources tab下的debuggerWorker.js选项卡,该选项卡下会显示当前调试项目的所有js文件。 ?...断点其实很简单 断点(Breakpoint) 是脚本设置好的暂停处。DevTools中使用断点可以调试JavaScript代码,DOM更新和 network calls。...有一种断点叫全局断点 全局断点的作用是,当程序出现异常,会在异常的地方暂停,这对快速定位异的常位置很方便。

    5.1K70

    IntelliJ IDEA 2022.2.2汉化版免登陆账号「winmac」

    单击“ 解决操作”链接打开“ 与冲突合并的文件”对话框。此外,当您执行pull,merge或rebase,IntelliJ IDEA现在会在“ 与冲突合并的文件”对话框显示Git分支名称。...- VCS日志选项卡的增强功能您现在可以从“ 日志”选项卡的上下文菜单删除提交的Git标记。此外,Diff预览面板现在可在VCS日志中使用。此外,您可以根据需要打开任意数量的日志选项卡。...- 修订版浏览存储库如果您使用Git进行版本控制,您现在可以根据任何给定的修订来探索存储库的状态。...“修订”操作中使用的“ 浏览存储库”(可从VCS日志的上下文菜单或文件历史记录获取),以“ 项目工具”窗口中打开所需的存储库状态。...6、组态- 项目配置IntelliJ IDEA ,您可以添加存储库排除某些传递依赖项。单击库属性编辑器配置操作链接

    4.7K30

    React Native调试技巧与心得

    心得:使用真机调试,你需要确保你的手机和电脑处在同一个网段内,即它们实在同一个路由器下。...在窗口的最下方的按钮可以遇到异常(exception)强制暂停。源码显示单独的标签页,通过点击 打开文件导航面板,导航栏中会显示所有已打开的脚本文件。...查看js文件 如果你想在开发者工具上预览你的js文件,可以在打开Sources tab下的debuggerWorker.js选项卡,该选项卡下会显示当前调试项目的所有js文件。 ?...断点其实很简单 断点(Breakpoint) 是脚本设置好的暂停处。DevTools中使用断点可以调试JavaScript代码,DOM更新和 network calls。...有一种断点叫全局断点 全局断点的作用是,当程序出现异常,会在异常的地方暂停,这对快速定位异的常位置很方便。

    6.8K50

    openwrt系统上安装第三方插件

    环境说明: 设备:小米R3G 系统:openwrt R20.5 一.安装插件 1.使用在线方式安装 openwrt界面菜单依次选择“系统”->“软件包”,打开的界面如下: “过滤器”后面的输入框输入要安装的插件名称...这时候可以选择添加自定义软件源,进入这一页的配置选项卡“自定义软件源”下的输入框输入要添加的软件源,并保存。...左侧菜单找到“网络存储“->”网络共享“,然后”共享目录“的选项卡上,添加一个共享文件夹,路径为路由器上的/tmp: 设置完记得右下角保存。...然后局域网的另一台计算机上用win+r打开运行窗口,输入“\路由器ip\tmp”,就能访问到共享文件夹了。将“.ipk”安装包复制到这个共享目录下。...3.文件传输方式安装 如果不熟悉命令行,还可以使用openwrt自带的文件传输功能,位置为“系统”->“文件传输”,这个功能可以上传文件到路由器,也可以从路由器上下载文件。

    15.7K10

    FL Studio21下载MacOS版简体中文支持苹果M1处理器

    添加曲目 - 播放列表剪辑焦点区域上的 [+] 按钮,可通过左键和右键单击选项添加乐器和音轨。粘贴位置 - 添加到音轨的剪辑放置播放头位置或任何时间选择。...选项 - “选项卡上显示图标和文本”。浏览器 - 为选项卡添加了“冻结”选项。当“冻结”,浏览器停止保存状态(哪些文件夹已折叠或不折叠)。“折叠结构”按钮充当“恢复到冻结状态”。...钢琴卷:视图 - 转调音符自动滚动钢琴卷轴。鼠标滚轮精度 - 使用鼠标滚轮编辑笔记语音属性提高了精度。钢琴卷 - 当(双击)空图案剪辑,将打开选定的通道。...jpeg扩展名现在是保存位图的默认扩展名。更新了效果 - 向“文本绘制”效果添加了混合参数。MIDI 脚本和 MIDI:性能模式 - 获取性能模式状态函数。...混音器 - 创建的音频或乐器轨道,窗口不再自动打开。窗户:安装 - 用户无法再将文件保存到 FL Studio 安装位置

    4K20

    台式计算机网线,台式电脑如何连接宽带_台式电脑如何连接网线

    2017-03-11 21:36:28 电脑直接拨号上网(有宽带账号和密码)或者自动获取IP(有帐号没密码)上方式设置见图 2016-12-10 13:29:30 右击网上邻居,点属性,创建一个的连接...,弹出的页… 2016-12-26 18:32:39 1、首先打开开始菜单,开始菜单打开控制面板 ,控制面板中找到网络和internet这个选项,然后单击这个选项,进入网络设置页面; 2、在网络和共享中心下面的小链接...,3… 2016-12-09 16:14:00 你好,据我所知,首先我们设置宽带的自动连接,双击打开”宽带连接”,首先你的宽带账号必须是自动记住密码的,否则自动连接无效,点击”属性”,点击”选项”选项卡...2016-12-08 14:57:29 控制面板,找到“网络和共享”,点击进入“网络共享中心”,页面偏下的位置有个“更改网络配置”,选择第一个“设置的连接和网络”2进入后,选项中选择“连接到网络...就可以用拨号 直接拨号… 2017-01-10 11:44:41 1、IE– 工具–internet选项–连接,选“始终默认连接”,点击“设置”打开“XX设置”对话框—“拨号设置”区填写“用户名”

    3.6K20

    FL Studio21最新中文版本全新功能详细介绍

    若关闭此功能,则在撤消被删除。·翻转铅笔按钮-将笔的辅助按钮的行为与主按钮交换。·备用撤消-安装在计算机上,默认立即打开。...导出(Export)-打开目标文件夹系统文件浏览器自动选择渲染的文件。文件(菜单)File (menu)-有一个的“更多”子菜单,最多显示50个最近的项目。...粘贴位置(Paste Location)-添加到的音频轨道的音乐剪辑片段可以播放开头位置或选择的任何时间位置放置。...选项(Option)-“选项卡上显示图标和文本”。浏览器(Browser)-为选项卡添加“冻结”选项。“冻结”,浏览器停止保存状态(文件夹是否折叠)。“折叠结构”按钮起到“恢复为冻结状态”的作用。...混音台(Mixer)-当创建的音频或乐器轨道,窗口不再自动打开。11针对Windows系统安装-用户无法再将文件保存到 FL Studio 安装位置

    3.7K20

    最新版水果FL Studio21新版本更新全解析!80项更新与改进!

    若关闭此功能,则在撤消被删除。·翻转铅笔按钮-将笔的辅助按钮的行为与主按钮交换。·备用撤消-安装在计算机上,默认立即打开。...导出(Export)-打开目标文件夹系统文件浏览器自动选择渲染的文件。文件(菜单)File (menu)-有一个的“更多”子菜单,最多显示50个最近的项目。...粘贴位置(Paste Location)-添加到的音频轨道的音乐剪辑片段可以播放开头位置或选择的任何时间位置放置。...选项(Option)-“选项卡上显示图标和文本”。浏览器(Browser)-为选项卡添加“冻结”选项。“冻结”,浏览器停止保存状态(文件夹是否折叠)。“折叠结构”按钮起到“恢复为冻结状态”的作用。...混音台(Mixer)-当创建的音频或乐器轨道,窗口不再自动打开。11针对Windows系统安装-用户无法再将文件保存到 FL Studio 安装位置

    3.4K30

    vmware14.0知识点手册

    将虚拟机移到位置或新主机 您可以将 Workstation Pro 创建的虚拟机移到其他主机系统或同一主机系统的其他位置。也可以将虚拟机移到使用其他操作系统的主机系统。...3 将虚拟机文件复制到位置。 4 如果您将虚拟机移动到同一主机系统的其他位置,请从虚拟机库移除该虚拟机,选择文件 > 打开,然后浏览到位置的虚拟机配置 (.vmx) 文件。...6 当您确定虚拟机能在位置正常工作后,请从原始位置删除虚拟机文件。 7 如果虚拟机无法正常工作,请确认您已将所有虚拟机文件复制到位置。...快照捕获拍摄快照的完整虚拟机状态,包括虚拟机内存、虚拟机设置以及所有虚拟磁盘的状态。 要为选定的虚拟机配置快照选项,请选择虚拟机 > 设置,单击选项选项卡,然后选择快照。 ?...要将硬件添加到所选虚拟机,请选择虚拟机 > 设置,单击硬件选项卡,然后单击添加。 注意 无法将硬件添加到处于挂起状态的虚拟机。

    5K90

    Sentry 官方 JavaScript SDK 简介与调试指南

    首先,安装所有依赖项,使用 lerna 引导工作区,然后执行初始构建,以便 TypeScript 可以读取所有链接的类型定义。...运行测试 运行测试与构建的工作方式相同 - 项目根目录运行 yarn test 将对所有包运行测试,特定包运行 yarn test 将为该包运行测试。还有一些命令可以每个位置运行测试的子集。...将断点或 debugger 语句放置测试或底层代码您希望 jest 暂停的任何位置打开包含相关测试的文件,并确保其选项卡处于活动状态(以便您可以看到文件的内容)。...单击绿色的 “play” 按钮以 watch 模式在打开的文件运行测试。...这样,当您遇到断点,您就会知道您到达了有问题的测试的一部分。 Linting 与构建和测试类似,linting 可以通过调用 yarn lint 项目根目录或单个包完成。

    2.5K20

    Win10 快捷键大全(史上最全)「建议收藏」

    Shift + C 侦听模式下打开 Cortana 注意: Cortana 仅在某些国家/地区提供,并且某些 Cortana 功能可能无法随时随地使用。...Ctrl + E 地址栏打开搜索查询 Ctrl + Enter 地址栏中将“www.”添加到所键入文本的开头,将“.com”添加到所键入文本的末尾 Ctrl + 单击 选项卡打开链接 Ctrl...+ Shift + 单击 选项卡打开链接并切换到该选项卡 Alt + Shift + 单击 新窗口中打开链接 Ctrl + Shift + M 开始创建 Web 笔记 Ctrl + Alt...“程序员”模式下选择 Not & “程序员”模式下选择 And 空格键 “程序员”模式下切换位值 游戏栏键盘快捷方式 按此键 执行此操作 Windows 徽标键 + G 打开游戏栏(当游戏处于打开状态...Ctrl + Y 鸟瞰图和道路视图之间切换地图视图 Ctrl + Home 在你的当前位置上居中放置地图 Ctrl + D 获取路线 Ctrl + F 搜索 Ctrl + M 最小化活动选项卡 Ctrl

    16.6K30

    水果编曲软件FLStudio最新21简体中文版本

    导出(Export)-打开目标文件夹系统文件浏览器自动选择渲染的文件。 文件(菜单)File (menu)-有一个的“更多”子菜单,最多显示50个最近的项目。...粘贴位置(Paste Location)-添加到的音频轨道的音乐剪辑片段可以播放开头位置或选择的任何时间位置放置。...选项(Option)-“选项卡上显示图标和文本”。 浏览器(Browser)-为选项卡添加“冻结”选项。“冻结”,浏览器停止保存状态(文件夹是否折叠)。...“折叠结构”按钮起到“恢复为冻结状态”的作用。 07钢琴卷 视图(View)-更换音符自动滚动钢琴窗。...混音台(Mixer)-当创建的音频或乐器轨道,窗口不再自动打开。 11针对Windows系统 安装-用户无法再将文件保存到 FL Studio 安装位置

    2.7K00

    FL Studio水果21最新中文版详细功能介绍

    导出 - 打开目标文件夹,将在系统文件浏览器自动选择呈现的文件。 文件菜单 - 有一个的子菜单,最多可显示 50 个最近使用的项目。 文件支持 - 现在可以导入 Apple .m4a音频格式。...添加音轨 - 通过播放列表剪辑焦点区域添加的“+”按钮,使用左键单击和右键单击选项添加乐器和音轨。 粘贴到位置 - 添加到音轨的剪辑将放置播放头位置或随时选择。...选项卡 - 一个的右键单击选项卡选项,用于向左/向右移动浏览器选项卡。 选择“克隆此选项卡”选项。 库选项卡 - 添加了免费和付费下载的在线内容。 内容会自动可以使用它的插件中提供。...选项 - 添加了选项卡上显示图标和文本。 浏览器 - 添加到选项卡“冻结”的“冻结”选项会导致浏览器停止保存状态,无论文件夹是否折叠。 “折叠结构”按钮充当冻结状态的还原。...混音器 - 创建的音频或乐器轨道,窗口不再自动打开。 关于视窗 安装 - 您无法再将文件保存到 FL Studio 安装位置

    4.3K40

    TeamViewer远程唤醒主机实战教程(多图

    获取到的MAC地址填入对应的位置,再填入需要被分配的静态IP地址,其他默认即可,点击保存。...所谓“适当的配置”, 苹果机上就是将“系统偏好设置”的“节能器”打开,并勾选上“唤醒以供网络访问”。...需要说明的是,PC机远程启动的条件是主机电源连通,网卡已接驳网线,BIOS打开“LAN Wakeup”功能,而这个时候操作系统是可以处于完全关闭状态的。...然而,苹果机并不支持远程启动,它只支持远程唤醒,也就是说它只能从睡眠状态被唤醒,而无法从关机状态被启动。...再来说说如何配置TeamViewer吧,我们软件的“首选项”,点击“常规”选项卡上的“LAN唤醒”功能的“配置”按钮。 ? 弹出的对话框填上我们的动态域名以及端口号“6”,然后保存设置。 ?

    5.7K41
    领券