为什么以及如何在 React 组件中使用类名实用程序?

2024-02-04

您能简单地向我解释一下使用的目的是什么吗类名 https://github.com/JedWatson/classnamesReact 代码中的实用程序?我刚刚阅读了 Classnames 文档,但我仍然无法理解在代码中使用它的主要原因是什么:

import classnames from 'classnames';
[...]
render() {
  const { className } = this.props

  return (
    <div className={classnames('search', className)}>
      <div className="search-bar-wrapper">
        <form className="search-form" onSubmit={this.onSearch.bind(this)}>
          <div className="search-bar">
            <label className="screen-reader-only" htmlFor="header-search-form">Search</label> [...]

此代码的完整版本(jsx):https://jsfiddle.net/John_Taylor/j8d42m2f/2/ https://jsfiddle.net/John_Taylor/j8d42m2f/2/

我不明白这行代码发生了什么:

<div className={classnames('search', className)}>

我也读过(如何使用 React.js 的类名库 https://stackoverflow.com/questions/32343167/how-to-use-classnames-library-for-react-js)答案,但我还是有理解上的问题my code片段。


classnames图书馆让你加入不同的classes根据不同的条件以更简单的方式。

假设您有 2 个类,其中每次都会使用其中一个类,但根据某种条件使用第二个类。所以没有classnames图书馆你会这样的

render() {
  const classnames = 'firstClass';

  if (someCondition) {
    classnames += ' secondClass'
  }

  return(
   <input className={classnames} .. />
  );
}

但与classnames图书馆你会这样做

render() {
  const classnames = {'firstClass', {'secondClass': someCondition}}
  return(
   <input className={classnames} .. />
  );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么以及如何在 React 组件中使用类名实用程序? 的相关文章

  • 如何使用jquery格式化数字

    我正在尝试删除 之后的数字 然后我想格式化数字 16810900 211233 喜欢这个 16 810 900 但我不知道该怎么做 这是我的 html 是这样的 div class main p class active 10200 00
  • 方向改变后的javascript最大视口高度Android和iOS

    目标 查找设备的最大视口高度 包括设备的空间address bar这样我们就可以动态调整 min body 的大小并将内容向上推 问题 移动浏览器处理方向状态的方式不同 方向变化时更新 DOM 属性的方式也不同 使用 JavaScript
  • 如何根据另一个动态下拉列表的值创建动态下拉列表?

    我有一个下拉菜单 当我选择一个选项时 它会创建一个动态下拉菜单 到目前为止 一切都很好 但我想创建另一个动态下拉列表 现在基于另一个动态下拉列表的值 我该怎么做 第一个动态下拉列表有效 我猜第二个无效 因为动态变量 div 没有静态 ID
  • 如何使用 console.log 省略文件/行号

    如今 您可以在 Chrome 的控制台中编写非常好的东西 查看this https developer chrome com devtools docs tips and tricks关联 我也做了一个截图 正如您在屏幕截图中看到的那样 文
  • Chart.js - 如何将数组集合推入数据集

    我一直在尝试多种方法将数组集合推送到数据集中 任何人都可以帮助我根据下面的代码将数组推入堆积图表中 这是例子 Codepen 堆叠栏 https codepen io narendrajadhav pen abzpWam JavaScrip
  • 获取 pdf 第 1 页(共 2 页)的图像

    我正在使用 html2canvas 和 jsPDF 以及 Angular4 创建图像 我想将此图像放置在 2 页生成的 pdf 的第 1 页上 但似乎这条线 doc save test pdf 需要在函数内部htm2canvas 因为如果我
  • 使用 Javascript 对象模型在 SharePoint 任务上设置“分配给”

    我想创建一个共享点任务并将其分配给我自己 当前用户 在 javascript 对象模型中 我有下面的代码 但我认为我需要设置 spusercollection 对象 而不是设置特定用户 但是 我似乎无法在任何地方找到如何执行此操作的任何示例
  • 从对象获取数据 - 我看到数据但无法保存它们

    正如你所看到的 我是新来的 我确实尝试过搜索 但没有找到解决我问题的方法 所以这是我的问题 如果我这样做 console log grid data kendoGrid data 这在控制台中显示如下 所以我明白这一点 有一个数组和一个带有
  • 我什么时候应该使用内联和外部 Javascript?

    我想知道什么时候应该包含外部脚本或将它们与 html 代码内联编写 就性能和易于维护而言 这方面的一般做法是什么 真实场景 我有几个需要客户端表单验证的 html 页面 为此 我使用了一个包含在所有这些页面上的 jQuery 插件 但问题是
  • 对函数而非组件做出延迟加载反应

    我正在开发一个 React v16 应用程序 需要加载一个重型 IMO 库来导出 xlsx 数据 我正在使用功能组件 挂钩 我了解并使用过
  • 使用 jQuery 更改 SVG 元素的“xlink:href”属性

    我正在尝试使用单击事件更改 xlink href 属性 到目前为止它部分有效 这就是我正在做的 HTML a href class ui btn ui corner all ui shadow editIcon style text ali
  • 如何使用 JavaScript 播放任意 MIDI 音符?

    澄清一下 我不想生成 MIDI 文件 也不想播放 MIDI 文件 我希望即时播放 MIDI 音符 我尝试使用https github com mudcube MIDI js https github com mudcube MIDI js作
  • Webpack:如何将 javascript 注入 HTML 而不是单独的 JS 文件

    有没有办法让 webpack 将输出注入 HTML 而不是单独的文件 我不得不使用html webpack inline source plugin https github com DustinJackson html webpack i
  • 单击时突出显示文本(javascript jquery html)

    当您在所有浏览器中双击某个单词时 它们会自动突出显示单击下的单词 但是否有可能找到一种方法exact单击一下就会发生同样的事情吗 我想这涉及到的事情可能是 TextRange 的东西 对所有段落 或整个正文或 div 的 onclick 做
  • 如何与使用 child_process.spawn 创建的新创建的服务器交互

    我正在尝试为我的私人托管的 反恐精英全球攻势 服务器制作一个前端 当我点击运行服务器时 在前端 一切正常 服务器启动并记录到控制台 但是如何查看服务器IP地址 服务器中的玩家等信息呢 这是我到目前为止运行服务器的内容 router post
  • 按钮导致页面重新加载

    我在我的页面上使用 html 和 jquery 在我的 html 中 我有一个按钮 单击该按钮将触发一个功能 当页面加载时 我调用文档准备中的主函数 这是我的代码 div div
  • 自动更改 Twitter Bootstrap 选项卡

    我希望 Twitter Bootstrap 选项卡按时间顺序更改 我使用它们有点像旋转木马 我希望选项卡每 10 秒切换到下一个选项卡 这是一个例子 http library buffalo edu http library buffalo
  • 在 Sublime Text 下获取完整的 JS 自动补全

    我刚刚在 Windows Vista 下安装了 Sublime Text 甚至遵循了中给出的建议这个帖子 https stackoverflow com questions 10636410 modifying sublime text 2
  • 保留对 React 状态变量的“引用”

    据我所知 Javascript 中没有指针 我有以下问题 但我想知道是否有一个解决方案让我无法解决 解决方案可能是普通的 Javascript 或者像 Context API 这样的 React js 钩子 useContext 或者更多
  • 使用 Three.js 中的设备方向控件进行对象旋转

    我正在迈出使用 JavaScript 进行编码并使用 Three js 的第一步 我正在尝试 Threejs org 的这个例子 http trijs org examples misc controls deviceorientation

随机推荐

  • 从Python API而不是saved_model_cli中提取(或设置)输入/输出TF张量名称信息

    我使用 Keras TF2 5 训练了一个简单的模型并将其保存为已保存模型 tf saved model save my model path to model 如果我通过检查它 saved model cli show dir path
  • 使用 Amazon Cognito 访问 AWS Iot 时出现禁止异常

    我正在创建一个使用 Amazon Cognito 身份验证连接到 AWS IoT 的 Android 应用程序 我能够成功验证用户身份并且能够获取凭据 使用这些凭据更新事物影子时始终返回 403 禁止异常 我已尝试了所有方法来解决该问题 但
  • 如何在 mongodb 中更新多个数组元素

    我有一个 Mongo 文档 其中包含一个元素数组 我想重置 handled数组中所有对象的属性 其中 profile XX 该文件的形式如下 id ObjectId 4d2d8deff4e6c1d71fc29a07 user id 7146
  • plist 在字典中写入数据

    是否可以通过代码编辑捆绑包中的 pList 文件或资源中的值 这意味着我的 plist 文件不是以编程方式创建的 我想以编程方式编辑其值 在您的应用程序包中 不可以 您无法在应用程序包内写入文件 但是 您可以在应用程序首次启动时将该文件复制
  • Firebase - 如何使用前端 JS 隐藏令牌。安全性如何

    我正在使用 firebase 开发一个 web ap 我想使用 JS 直接从前端连接它 这样我就避免了中间层 所以我的问题基本上是如何使用 firebase 进行安全实现以及如何隐藏将在 Javascript 上公开的凭据 您永远不会在客户
  • 如何处理:ImportError: /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_log_structed_standard

    我有一台 MacBook Pro 上面安装了 VirtualBox 安装了 Anaconda 来自https www continuum io https www continuum io 并安装了OpenCV conda install
  • CFNetwork 内部错误:URLConnectionLoader.cpp:289

    一段时间后 当我打开应用程序时 我收到日志 440 CFNetwork内部错误 0xc01a BuildRoot Library Caches com apple xbs Sources CFNetwork CFNetwork 758 4
  • Symfony Restful 帖子:JMSSerializerBundle 与 Symfony 表单组件

    据我了解 当控制器收到 post put patch 请求时 JMSSerializerBundle 的反序列化与 symfony 表单组件的反序列 化效果相同吗 因此 我要么创建一个 symfony 自定义 formType 例如一个 U
  • Qt GUI事件记录和回放

    我正在尝试实现一个简单 轻量级的系统来记录 Qt GUI 事件并从脚本中回放它们 我认为使用 Qt 事件系统的魔力这将是相当简单的 但我遇到了一个我不明白的问题 这是我正在做的事情的快速总结 记录 I use QApplication in
  • Perl 的首选单元测试框架是什么?

    我对 Perl 有点陌生 我想知道是否有首选的单元测试框架 谷歌向我展示了一些不错的结果 但由于我是新手 我不知道社区内是否有明确的偏好 Perl 附带了一整套很棒的测试工具 Perl 核心有数以万计的自动检查 并且大部分都使用这些标准 P
  • ActiveRecord::Base 上的 alias_method 导致 NameError

    我有一个直接继承自的模型ActiveResource Base 我正在尝试运行alias method对于记录表中的大多数列 但结果是 NameError 名称错误 未定义的方法address line 1 for class LeadIm
  • 如何使用 CSharp SQLite 加速 SQL 查询?

    背景 我有一个 SQLite3 数据库并且正在使用CSharp SQLite http code google com p csharp sqlite 来查询数据 我的问题是任何使用 JOIN 或 ORDER BY 调用的查询都非常慢 使用
  • JavaScript 中的instanceof 是如何工作的?

    在以下代码示例中 最后对 obj2 和 obj3 进行了检查实例化即使构造方式不同并且返回结果也返回 truename属性不同 var Obj1 function this name foo1 Obj1 prototype name foo
  • 将传单地图组合在一起

    我生成了这两个关于地理坐标的随机数据集 例如 每个点代表法国的一家假想餐厅 id 1 1000 long 2 2945 rnorm 1000 0 1085246 0 1 lat 48 8584 rnorm 1000 0 009036273
  • 3D 迷宫中的最短路径

    我正在尝试编写一个程序来使用递归查找 3D 迷宫中的最短路径 我能够编写找到穿过迷宫的随机路径的代码 但我想知道如何修改我的代码以找到最短路径 请注意 我想保留递归方法 有人可以提出解决方案吗 这是一个二维迷宫示例 s XXXX XX X
  • MVC 4 客户端验证不起作用

    谁能告诉我为什么客户端验证在我的 MVC 4 应用程序中不起作用 layout cshtml Scripts Render bundles jquery RenderSection scripts required false 在我的 we
  • 使用 Flex 和 Bison 的简单 Java 语法

    我最近开始学习基本的 Flex 和 Bison 因为我必须为简单 但不是太简单 语法制作一个解析器 我决定在我的语法中制作一种简化的 Java 语言 我做了 l和 y文件和所有内容都编译没有错误 我正在使用 gcc 进行编译 问题是每次我运
  • 查找一个文件中不存在于另一个文件中的行[重复]

    这个问题在这里已经有答案了 我有两个文件 假设a txt and b txt 两者都有一个名称列表 我已经跑了sort在这两个文件上 现在我想找到来自a txt哪些不存在于b txt 我花了很多时间寻找这个问题的答案 所以记录下来以供将来参
  • 使用 Amazon Beanstalk 部署 play2 应用程序的最佳方式

    我发现零碎的指令here https stackoverflow com questions 11918820 java play 2 deployment以及其他一些关于在 amazon ec2 上部署 Play2 应用程序的地方 但没有
  • 为什么以及如何在 React 组件中使用类名实用程序?

    您能简单地向我解释一下使用的目的是什么吗类名 https github com JedWatson classnamesReact 代码中的实用程序 我刚刚阅读了 Classnames 文档 但我仍然无法理解在代码中使用它的主要原因是什么