空字符串对于 React Link 来说是有效值吗?

2024-02-13

我正在写一个React.js http://React%20%E2%80%93%20A%20JavaScript%20library%20for%20building%20user%20interfaces%20%20https://reactjs.org/我想使用的应用程序Link来自react-router包的组件,以便有条件地将用户重定向到另一个页面。如果某些条件不成立,我设置toprop 为空字符串,该字符串有效且不会导致页面重新加载,并且页面保留在原来的位置。但我想知道这是否是最佳实践?

这是我的解决方案:

import { Link } from 'react-router';

<Link to={condition === true ? '/some/other/url' : ''}>
    <div>
        my content
    </div>
</Link>

我没有看到任何内容文档 https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/api/Link.md关于空字符串输入。


我从来没有在 HTML 或 React 中将某些东西与任何东西联系起来。也就是说,你似乎没有什么选择:

Option 1有条件地渲染div不是to属性。如果条件为真则显示Link如果没有则显示 div,如果没有则显示 divLink。这可能是更“常见”的方法。如果你的div并不像“我的内容”那么简单,我会将其移至功能组件中。并使用该组件而不是<div>MyContent</div>如下所示。

import { Link } from 'react-router';

{ condition ? 
   (
     <Link to='/some/other/url'>
      <div>My Content</div>
     </Link>
   ) : ( <div>My Content</div> )
} 

Option 2做你所做的但使用#而不是空字符串。

import { Link } from 'react-router';

<Link to={condition === true ? '/some/other/url' : '#'}>
    <div>
        my content
    </div>
</Link>

Option 3如果条件为 false,则禁用链接。

import { Link } from 'react-router';

//a better name might be in order here
const handleLinkDisable = (e) => {
  const { condition }  = this.state; //just assuming it comes from state
  if(condition){ e.preventDefault(); }
}; 

<Link to='/some/other/url' onClick={handleLinkDisable}>
  <div>My Content</div>
</Link> 

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

空字符串对于 React Link 来说是有效值吗? 的相关文章

随机推荐

  • 使用R自动下载数据

    我想下载 pdf 或 excel 格式的所有数据 每个州 X 作物年 X 标准报告组合这个网站 https aps dac gov in LUS Public Reports aspx 我按照本教程做了我想做的事 从 URL 下载数据 ht
  • 如何调整ggplotly中的悬停?

    我有 2 个分类列和 1 个数字列的数据 我建立了 marikemo 图表ggplot 为了使其具有交互性 我使用了ggplotly 但是 当我移动光标时 悬停会显示相同的信息两次 create a dataset specie lt c
  • Android 相机实时滤镜

    相机实时滤镜的最佳方式是什么 我最近使用链接中的 GPUImage 库 https github com Cyber Agent android gpuimagelibrary https github com CyberAgent and
  • Symfony2 和 Twig - 检查资产是否存在

    我有一个使用 twig 模板的 symfony2 项目 我正在显示一些图像 并且希望仅在特定资产存在时才显示图像 我有这个 if asset bundles sciforumversion2 images logos conf img im
  • 在Python中定义多维字典的最佳方法? [复制]

    这个问题在这里已经有答案了 我目前正在使用下面的方法在 python 中定义多维字典 我的问题是 这是定义多维字典的首选方式吗 from collections import defaultdict def site struct retu
  • 如何使用 confluence-kafka-python 获取 Kafka 主题最后一条消息的偏移量?

    我需要使用检索主题的最后 N 条消息confluent kafka python 我一直在读https docs confluence io platform current clients confluence kafka python
  • 从相机应用程序返回时重新创建活动

    此问题仅出现在两款较旧的三星 Galaxy 机型上 但仍然非常容易重现 我有一个简单的应用程序 可以显示通过设备的相机应用程序拍摄的照片 它有一个按钮来启动该应用程序 并在 AsyncTask 中处理结果以将其下采样到 ImageView
  • 如何使用seaborn distplot / histplot / displot绘制百分比

    有没有办法在 distplot 上绘制百分比而不是计数 ax sns FacetGrid telcom hue Churn palette teal crimson size 5 aspect 1 ax ax map sns distplo
  • 如何计算采购量与销售量的差额?

    如何使用 Ms Access 数据库计算一次查询中的采购量和销售量之间的差异 例如 我的数据如下所示 ProductId Type Quantity 1 Purchase 24 1 Sale 1 如何在一个查询中获得 24 1 23 的差值
  • 设置超时 Internet Explorer

    我在 MSIE 中有以下 javascript setTimeout myFunction 1000 param 这似乎适用于除 Internet Explorer 之外的所有浏览器 参数只是没有转发到函数 查看调试器 它是未定义的 par
  • 奇怪的通用继承模式

    在一些研究过程中 我遇到了一种使用我以前从未见过的泛型的继承模式 http thwadi blogspot ca 2013 07 using protobuff net with inheritance html http thwadi b
  • 将 cakephp POST 参数插入 URL

    我有下面的表格 其中包含两个复选框来对某些产品进行排序
  • 什么是焊接,JSR-299?

    我发现了很多显示 Weld 代码示例的教程 但没有介绍性概述 您能否推荐一篇介绍性文章 或回答以下问题 Weld 能做什么 给你带来什么 它与 Java EE 6 有什么关系 如何在 Java EE 6 项目中使用它 如果在 Java EE
  • 使用c++ opengl的贝塞尔曲线

    我使用此代码通过单击一个点来绘制贝塞尔曲线 如果我使用编写的静态公式 它会起作用drawBezier函数 它会形成正确的曲线 但是如果我使用写成的广义公式drawBezierGeneralized 最后一点有问题 我究竟做错了什么 incl
  • 将 Hadoop 中的文件获取到 Web 应用程序中

    我是 Hadoop 新手 现在我正在尝试在 eclipse 中做一个应用程序 我想在其中使用 HDFS 中存在的数据 如果我们想用Java连接数据库 我们有JDBC连接 那么 我需要做什么才能直接连接HDFS呢 在 Hadoop 中 首先
  • SQL Server 2016_无法启动镜像

    将SQL Server 2014升级到SQL Server 2016 都是企业版 后 我无法启动镜像 这在 SQL Server 2014 上正常工作 我恢复后 WITH NORECOVERY 镜像数据库 包含我通常运行的主数据库的完整备份
  • 如何强制 Iframe 在标准父框架下运行怪异

    我们有一个父页面必须在 IE9 标准模式下运行 执行 HTML5 命令 下面我们有一个必须在兼容模式 IE7 8 下运行的 iframe 据我了解 在 IE9 中 iframe 继承了父级的文档类型 那是对的吗 这个问题有什么解决办法吗 不
  • 将附加参数传递给 python 回调对象 (win32com.client.dispatchWithEvents)

    我正在使用 win32com 包与 Windows 应用程序交互 应用程序并不重要 简而言之 我想要实现的是订阅更新的表 我已经成功实现了一个回调 该回调接收表更新时返回的数据 但我现在需要的是对收到的数据采取行动 如果我可以使用附加参数实
  • VHDL - iSIM 输出未初始化,不改变状态

    您好 我是一位 Xilinx 新用户 在如何在测试台中编写激励 模拟方面遇到了麻烦 我的输出 Kd 没有给我任何合理的值 并在移动并始终保持在 1 之前的前几个时钟周期给出 u 不确定我是否写了正确的刺激 但希望有人能帮助我 我的VHDL代
  • 空字符串对于 React Link 来说是有效值吗?

    我正在写一个React js http React 20 E2 80 93 20A 20JavaScript 20library 20for 20building 20user 20interfaces 20 20https reactjs