如何在 React js - JSX 中动态创建输入文本字段?

2024-02-15

我对 ReactJS 还很陌生,我遇到了一个场景,我必须创建 6 个彼此非常相似的输入字段。现在我的类渲染方法中有类似的东西,

render () {
    return (
        <div>
            <p>
                <label htmlFor="answer1">Answer:</label><br/>
                <input
                type="text"
                name="answer1"
                id="answer1"
                className="answer"
                value={this.state.answer1}
                onChange={this._handleChange}
                />
            </p>
            <p>
                <input
                type="text"
                name="answer2"
                id="answer2"
                className="answer"
                value={this.state.answer2}
                onChange={this._handleChange}
                />
            </p>
            <p>
                <input
                type="text"
                name="answer3"
                id="answer3"
                className="answer"
                value={this.state.answer3}
                onChange={this._handleChange}
                />
            </p>
            <p>
                <input
                type="text"
                name="answer4"
                id="answer4"
                className="answer"
                value={this.state.answer4}
                onChange={this._handleChange}
                />
            </p>
            <p>
                <input
                type="text"
                name="answer5"
                id="answer5"
                className="answer"
                value={this.state.answer5}
                onChange={this._handleChange}
                />
            </p>
            <p>
                <input
                type="text"
                name="answer6"
                id="answer6"
                className="answer"
                value={this.state.answer6}
                onChange={this._handleChange}
                />
            </p>
        </div>
    );
}

代码丑陋且多余,我是否可以动态地执行此操作?


定义一个怎么样Answer像这样的组件(仅显示渲染方法):

render() {
  return (
    <p>
        <label htmlFor={this.props.name}>Answer:</label>
        <input
          type="text"
          name={this.props.name}
          className="answer"
          value={this.props.value}
          onChange={this.props.handleChange}
        />
    </p>  
  );
}

然后在您的父组件上,您只需导入它并使用它,如下所示:

var Answer = require('./answer.js');
//..

render() {
    return (
        <div>
          <Answer name="answer1" value={this.state.answer1} handleChange={this._handleChange} />
          <Answer name="answer2" value={this.state.answer2} handleChange={this._handleChange} />
          <Answer name="answer3" value={this.state.answer3} handleChange={this._handleChange} />
          // add all your Answer components
        </div>                    
    );
}

根据 Thylossus 建议,这里是一个使用的示例map:

var Answer = require('./answer.js');
//...

render() {
  // this is supposing you've got an answers array of { name: ..., value: ...} object
  var answers = this.state.answers.map(function(a) {
    return(<Answer name={a.name} value={a.value} handleChange={this._handleChange} />)
  });
  return (
    <div>
      { answers }
    </div>                    
  );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 React js - JSX 中动态创建输入文本字段? 的相关文章

  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • IE从哪个版本开始支持Object.create(null)?

    您可以通过多种方式在 JavaScript 中创建对象 creates an object which makes the Object prototype of data var data1 new Object Object liter
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • React onClick 事件仅在渲染组件时触发

    动态渲染组件的 onClick 函数应通过 useState 设置所选日期 imgs 上的 onClicks 完全按照您的预期工作 没有任何问题 即使只是在其位置放置一个带有 onClick 属性的 div 也是行不通的 当组件渲染时 on
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检

随机推荐

  • ''hello'' ++ ''world'' 在 Haskell 中不起作用

    只是想澄清一下 这是我第一天编程 我意识到这个问题是多么愚蠢 D 1 为什么不起作用 ghci gt hello world
  • 如何从泛型定义和泛型参数获取泛型类型?

    在 C 中 如何从泛型定义和泛型参数构造泛型类型 例如 var genericDefinition typeof List var genericArgument typeof string How can I get the Type i
  • kubernetes 事件时间表

    我希望能够在时间轴上看到 kube 集群发生的所有各种事情 包括何时发现节点已死亡 何时添加新节点 何时崩溃以及何时重新启动 到目前为止我们发现的最好的是kubectl get event但这似乎有一些限制 它不会回溯那么远 我不确定它回溯
  • Python中的凯撒密码:删除列表中的空格

    我正在从事凯撒密码项目 我获取用户的输入 将其转换为列表 删除空格 然后对字母进行加密 我的问题是 如何将这些空格重新添加到最终的加密消息中 这是我到目前为止所取得的成就 假装单词 消息 alphabet a b c d e f g h i
  • 如何修复 Subversion «!»地位

    Subversion 手册指出 物品丢失 例如您搬家或 没有使用 svn 就删除了它 这 也表明一个目录是 不完整 结账或更新 被打断 但正如 Subversion 经常出现的情况一样 没有说明如何解决该问题 通常 我会使用我信任的Fix
  • 是否有 OAuth2 与 WebFlux 的工作示例

    我正在尝试将 OAuth2 添加到 WebFlux 但找不到任何工作示例 为了实现自己的授权服务器 我使用这样的代码 EnableAuthorizationServer Configuration public class ServerAu
  • Facebook SDK:FBLoginView 重新授权发布流

    使用 FBLoginView 时调用 initWithReadPermission 后 我遇到重新授权发布流的问题 我尝试在委托函数内部调用 我可以在其中获取用户信息 在下一个对话框请求发布流权限后 应用程序向我抛出一个异常 com fac
  • SharePoint 初学者用户教程有什么好处? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 好吧 我的任务是为一个政府内部网站创建一个 wss v3 0 网站 但内部 SharePoint 经验很少 尽管这是一个 IT 部门 所以
  • 如何提取一些单元测试来分离gradle测试任务?

    假设我想将 Robolectric 测试与普通单元测试分开 并将它们作为单独的 gradle 任务运行 是否可以 我已经设法从单元测试中排除不需要的测试 android testOptions unitTests all exclude p
  • Linux内核AIO,开放系统调用

    为什么 Linux 内核 AIO 不支持异步 开放 系统调用 因为 打开 可能会长时间阻塞文件系统 不是吗 首先 这是一个非常好的 合理的问题 不幸的是 它可能会赶走比我更有知识的人 AFAICT 没有good原因 您设法挖掘的讨论是相关的
  • Rails 路由:我缺少什么?

    我的应用程序有票证 票证可以 解决 我可以通过 AJAX POST 到 resolve 操作 没有任何问题 但我无法通过普通的 HTML 表单 POST 我明白了No route matches tickets 321 resolve HT
  • 抽象泛型类采用本身派生自该类的类型参数

    您认为创建一个将派生自自身的类作为类型参数的抽象泛型类是可接受的还是不好的做法 这允许抽象泛型类操作派生类的实例 特别是根据需要创建派生类的 new 实例的能力 并且可以帮助避免在派生自它的具体类中重复代码 如果 不好 您更喜欢什么替代方案
  • 谷歌地图 API v3:在点击折线事件上的两个现有点之间的折线上添加点

    如何在单击折线事件上的两个现有点之间的折线上添加点 谢谢你 如果你只是在谈论一个Polyline只有 2 个点 您可以使用 a 的中心LatLngBounds http code google com apis maps documenta
  • C++ 构造函数中可移动类型的右值

    我正在使用 C 11 并尝试构造一个拥有可移动类型的类 如下所示 class foo std istream input public foo std istream in input in 然后实例化该对象 foo var1 std if
  • Java For-Each循环:排序顺序[重复]

    这个问题在这里已经有答案了 java for each 循环是否保证在列表上调用时元素将按顺序呈现 在我的测试中似乎确实如此 但我似乎找不到任何文档中明确提到的这一点 List
  • 为什么 NetBeans 找不到我的某些项目的 CopyLib?

    今天早上我遇到了一个棘手的问题 我花了几个小时试图追踪它 我继承了两个 NetBeans 项目的一些代码 A and B 他们都成功构建并运行 没有复杂的 Ant 构建任务 只是默认的 IDE 设置 这两个项目共享大量代码 因此我将其分解为
  • 如何从 Rails 模型中删除列?

    我需要从我已经创建的 Rails 模型中删除几列 并且该模型中有一些行条目 怎么做 任何包含修改 Rails 中架构的详细信息的链接吗 我正在使用 Rails 版本 3 要删除数据库列 您必须生成迁移 script rails g migr
  • Jquery:连接两个元素的值

    尝试在 Jquery 中实现一些目标有点卡住了 想知道是否有人可以提供帮助 我正在创建自己的就地编辑功能 您可以在其中单击编辑按钮 然后我的定义列表的内容将被交换为表单 预填充数据 如同this http 15daysofjquery co
  • 函数和 powershell 远程处理

    我有一个运行良好的脚本 但我想提高我的 powershell 知识 并想知道是否有更简单的方法来做到这一点 我的脚本的一部分连接到服务器并拉回服务器上的文件和大小列表并将其导出到 csv 我找到了一个函数 Exportcsv 它允许我使用早
  • 如何在 React js - JSX 中动态创建输入文本字段?

    我对 ReactJS 还很陌生 我遇到了一个场景 我必须创建 6 个彼此非常相似的输入字段 现在我的类渲染方法中有类似的东西 render return div p p div