如何使用reason-react有条件地在JSX中设置HTML属性?

2024-01-01

我想渲染一个 HTML 复选框,其选中状态由数据控制。

给出一个接收一个无状态组件item type { label: string, checked: bool},

Like so:

let component = ReasonReact.statelessComponent("TodoItem");

let make = (~item, _children) => {
  render: _self => {
     <li> <input type_="checkbox" {/*looking for something like this*/ item.checked ? "checked" : "" /* doesn't compile */}/> {ReasonReact.string(item.label)} </li>
  }
}

如何添加该属性的存在checked to the input标签基于item.checked == true健康)状况?


正如 @wegry 在评论中所说,直接传递值似乎更适合您的用例,因为item.checked已经是一个布尔值,并且checked需要一个布尔值。

但更笼统地回答,由于 JSX 属性只是底层的可选函数参数,因此您可以使用一种简洁的语法技巧来显式传递option到它:只需在值前面加上?。以你的例子:

let component = ReasonReact.statelessComponent("TodoItem");

let make = (~item, _children) => {
  render: _self => {
     <li> <input type_="checkbox" checked=?(item.checked ? Some(true) : None) /> {ReasonReact.string(item.label)} </li>
  }
}

或者,举一个您已经有选择的示例:

let link = (~url=?, label) => 
  <a href=?url> {ReasonReact.string(label)} </a>

这记录在标题为显式传递可选 https://reasonml.github.io/docs/en/function#explicitly-passed-optional在 Reason 文档的 Function 页面上。

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

如何使用reason-react有条件地在JSX中设置HTML属性? 的相关文章

随机推荐

  • Angular 4:无法从响应中读取标头 - 不是 CORS 问题

    在服务器自动更新令牌的上下文中 我正在努力解决基础知识 从响应中获取标头数据 它似乎与 CORS 无关 因为我的 Node express 允许 Authorization x access token 并相应地响应 请参见下面的网络选项卡
  • 使用 Jenkins 构建 Docker 镜像会导致“发现不支持的协议方案”

    我正在跟进this https www katacoda com courses jenkins build docker images在线教程逐行 但在第 3 步 任务 配置插件 当我按下 测试连接 按钮时 我收到此错误消息 发现不支持的
  • 张量流中使用的钩子是什么意思

    我无法理解python tensorflow中Hook的确切含义 LearningRateSetterHook tf train SessionRun Hook 如果您向我解释一下 我将不胜感激 谢谢 这可能是一个关于什么是钩子的更普遍的问
  • 如何获取 dockerregistryv2 上的镜像列表

    我正在使用 dockerregistry v1 并且有兴趣迁移到较新的版本 v2 但我需要某种方法来获取注册表中存在的图像列表 例如 使用注册表 v1 我可以执行 GET 请求http myregistry 5000 v1 search 结
  • 调整自定义对象的 console.log 行为

    有什么方法可以影响 console log 给出的自定义对象吗 我尝试覆盖 customObject prototype toString 方法 但这不起作用 有任何想法吗 之前的答案在较新版本的节点中已被弃用 现在需要实现的方法是符号 u
  • 将数组的所有元素设置为一个值的最佳方法是什么?

    我有一个整数数组 我想在每次调用函数时将数组中的所有值设置为 x 我看过 memset 但我认为这只适用于字节数组 我可以做明显的 for 循环 但我猜有一个标准的 lib 函数可以更好地完成这个任务 有人知道吗 就循环一下 差不多了 或者
  • 雨果与 Asciidoctor

    我正在尝试用 Hugo 建立一个博客 只要我使用 Markdown 它基本上就可以正常工作 但由于我在存储库中还有一些带有 antora 的其他网站内容 文档 所以我想用 asciidoc 编写所有文本 但当我尝试从 adoc 文件生成网站
  • jest typescript - 模拟日期构造函数

    我试图嘲笑new Date 返回特定日期 下面的代码 const now new Date jest spyOn global Date mockImplementation gt now 给出编译错误 Argument of type g
  • 哪些 Rust 数据结构是不确定的

    编写智能合约时 确保使用的所有数据结构都是确定性的非常重要 具体来说 如果HashMap or HashSet使用 Rust 标准库是否存在可能的非确定性 由于 Wasm 运行时无法访问非确定性输入 因此整个执行是确定性的 HashSet
  • Entity Framework 5.0 PostgreSQL (Npgsql) 默认连接工厂

    我试图首先使用 PostgreSQL Npgsql 提供程序 获取 EF 5 0 代码 我通过 NuGet 安装了 Npgsql 2 0 12 1 尽管引用的程序集是 2 0 12 0 我在 app config 中声明了 Npgsql 默
  • mmap:强制 64K 对齐

    我正在将 由我 为 Windows 编写的项目移植到移动平台 我需要相当于VirtualAlloc 朋友 自然的就是mmap 然而 有两个显着差异 返回的地址VirtualAlloc保证是所谓的倍数分配粒度 dwAllocationGran
  • 在 SQLalchemy 中过滤左连接

    使用 SQLalchemy 我想执行左外连接并且过滤掉在连接表中确实有匹配的行 我正在发送推送通知 所以我有一个Notification桌子 这意味着我也有一个ExpiredDeviceId用于存储不再有效的 device id 的表 我不
  • 强制标准输出编码为 UTF8

    我希望从我的 C 项目中另一个应用程序的标准输出流中解析 UTF8 字符 使用默认方法 从进程的标准输出流读取时 ANSI 范围之外的字符会被损坏 现在根据微软的说法 我需要做的是设置StandardOutputEncoding 如果 St
  • 将 hibernate 添加到 netbeans 中的现有 Web 应用程序中?

    我在 netbeans 中创建了一个 Web 应用程序 它运行良好 现在出于学习目的 我想使用 hibernate 进行数据库交互 我可以在 netbeans 中使用 hibernate 创建一个新项目 但我不知道如何在现有项目中添加 hi
  • Javascript getImageData for canvas html5

    我已经把头发扯下来了 我得到了这个工作 认为 我可以承担不保存这个版本的费用 然后我 打破了 构建 线路myImageData context getImageData 0 0 canvas width canvas height 似乎打破
  • PHP进程间通信监控消息队列

    我正在开发一个项目 为排行榜和其他几个位置生成统计数据 我的目标是尽可能实时 因此我实现了一个用于消息队列的 RabbitMQ 服务器 在前端 我有一个 Nodejs 设置 用于将信息提供给正在观看它的客户 在同一台服务器上 我有一个 PH
  • InvalidOperationException:内容类型不正确:ASP.NET Core

    我有两种表格 一种用于登录 一种用于注册 它们都在同一视图上并使用同一模型 我正在使用控制器处理表单提交 我在访问登录页面时收到以下错误 InvalidOperationException Incorrect Content Type 完整
  • Custom.css 在 32.0.1700.76 m Google Chrome 更新中停止工作

    我使用此网站上的 Google 开发者工具的一些主题 http devthemez com themes chrome developer tools http devthemez com themes chrome developer t
  • 如何将元素数组转换为 NodeList?

    首先第一件事是 这不是问如何将 NodeList 转换为数组 这是相反的 为了保持一致性 我想创建一个返回 NodeList 的函数 就像document querySelectorAll does 这是我当前的代码 var toNodeL
  • 如何使用reason-react有条件地在JSX中设置HTML属性?

    我想渲染一个 HTML 复选框 其选中状态由数据控制 给出一个接收一个无状态组件item type label string checked bool Like so let component ReasonReact statelessC