FormControl 是用来做什么的?为什么使用它?应该如何使用呢?

2024-03-08

有人可以用外行的术语向我解释 FormControl 提供什么功能,以及为什么/如何使用它?

我在 React 中使用 Material-UI,我看到的许多表单示例都使用 FormControl,但我很难理解它的作用,以及它对于我的项目是否有必要。

现在我只有一个名为 Form.js 的组件,并且我将所有表单元素包含在 div 中,如下所示:

return (
<div>
  <FormControl className={classes.formControl}>
    <InputLabel htmlFor="select-multiple-accounts">Account</InputLabel>
    <Select
      multiple
      value={accountName}
      onChange={handleAccountChange}
      input={<Input id="select-multiple-accounts" />}
      renderValue={
        selected => (
        <div className={classes.chips}>
          {
            selected.map(value => (
            <Chip key={value} label={value} className={classes.chip} />
          ))}
        </div>
      )}
      MenuProps={MenuProps}
    >
      {accountNames.map(name => (
        <MenuItem key={name.label} value={name.label} style={getStyles(name.label, accountName, theme)}>
          {name.label}
        </MenuItem>
      ))}
    </Select>
  </FormControl>
  <br /><br />
  <TextField
    id="job-number"
    label="Job #"
    className={classes.textField}
    value={props.jobNumber}
    onChange={handleJobNumberChange}
    fullWidth
  />
  <br /><br /><br />
  <TextField
    id="project-description"
    label="Project Description"
    placeholder="Provide a detailed description of the project:"
    className={classes.textField}
    multiline
    variant="outlined"
    value={props.projectDescription}
    onChange={handleProjectDescriptionChange}
    fullWidth
  />
</div>
  );
}

这个可以吗?或者我应该将所有内容包装在 FormControl 中?如果是这样..你能解释一下为什么吗?我不确定将表单编码到 React Web 应用程序中时的最佳实践是什么。我是 React Forms 的新手。

Thanks.


来自官方 Material UI 文档表单控制API https://material-ui.com/api/form-control/:

提供上下文,例如已填充/已聚焦/错误/必填用于表单输入。依赖上下文提供了高度的灵活性,并确保 FormControl 的子级之间的状态始终保持一致。此上下文由以下组件使用:

  • 表单标签
  • 表单辅助文本
  • Input
  • 输入标签

因此,如果您想使用上述功能,您应该将表单包装在 FormControl 组件中。

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

FormControl 是用来做什么的?为什么使用它?应该如何使用呢? 的相关文章

随机推荐

  • 两个浏览器选项卡之间共享变量范围? [复制]

    这个问题在这里已经有答案了 我有一个带有 HTML 表单的 Web 应用程序 其中包含一个选择 选项条目 它在包含 200 个项目的演示中运行良好 即使找到您想要的项目很笨拙 但实际上有超过 30000 个项目 这是零件清单 我的第一个想法
  • MySQL:检查某个值是否包含在范围区间内

    我想知道是否可以检查字符串值是否包含在列中 前提是该列包含开始值和结束值 例如 如果表的 NR 列包含以下行 400 50045 76 23 2512 14 19 21 我想找到其中包含值 421 的行 所以答案应该是第一行 这在mysql
  • 位置固定和-webkit-overflow-scrolling:触摸;

    我正在使用 css 技巧让网站感觉像 Cordova 中的应用程序 webkit overflow scrolling touch 然而 这打破了 消失 反弹 我的位置 固定元素 有什么想法吗 仅供参考 Safari 在 ios 8 上运行
  • PHP 全局命名空间别名

    这是场景 我正在将命名空间实现到我的项目中 我有自己的自定义桥接库 它调用 Zend 等其他库来完成繁重的工作 我在自定义桥库中使用完全限定的命名空间没有问题 但希望在控制器 模型和视图中保持代码尽可能简洁 这是我想使用的一些别名的示例 u
  • 使用flask-wtf queryselectfield进行更具体的SQL查询

    我想使用 Flask 和 WTF 创建一个登录表单 应用程序应从数据库表中读取所有用户的昵称并将其显示在 QuerySelectField 中 它确实有效 但我认为我可以以 更好的方式 做到这一点 我有一个这样的数据库表 id nickna
  • 带括号的成员函数地址错误

    我发现了一些有趣的事情 错误消息说明了一切 获取非静态成员函数的地址时不允许使用括号的原因是什么 我在 gcc 4 3 4 上编译它 include
  • Onclick 事件跟踪 Google Analytics Wordpress Visual Composer 插件

    我想添加以下代码以进行 GA 事件跟踪 onclick ga send event eventCategory Contact eventAction ContactRequest 关于此号召性用语 div class vc btn3 co
  • 从 WCF 服务返回 401

    如何从 WCF 服务返回 HTTP 401 如果您正在编程 REST 服务 可以通过以下方式完成 private IWebOperationContext context new WebOperationContextWrapper Web
  • 为什么 Java 中的 contains() 方法不能按预期工作?

    我正在编写一个创建 ArrayList 的方法S Comp包含数组中包含的所有元素allNodes 但不包含在 ArrayList 中solution 其元素全部包含在allNodes 当我打印时solution and allNodes
  • rbind 错误:“名称与以前的名称不匹配”

    作为更大问题的一部分 添加 makeUniqueIDs论证rbind SpatialPolygonsDataFrame对于多边形 ID 相同的情况 我遇到了来自 rbind 的奇怪消息 gt do call rbind xd small E
  • 正则表达式匹配包含n个或更多指定字符的文本

    我需要找到包含超过 10 个 的行 导入 CSV 时出错 因此需要手动更正 我使用的是 Notepad 所以我不需要编写 reqex 来匹配行 只需编写逗号即可 11 100 does not work 也匹配逗号 您需要排除那些具有否定字
  • Python unicode编码问题

    使用Python 2 7 5 所有数据库和表都是 我的代码看起来像这样 import MySQLdb as mdb import urllib2 import sys import logging logging basicConfig l
  • 基于 Trie 的地址簿和按姓名和联系电话进行高效搜索

    基于 trie 数据结构开发地址簿是一种已知的方法 它是一种高效的字符串数据结构 假设如果我们想为基于姓名 数字等的地址簿创建一个有效的搜索机制 那么有效的数据结构是什么 可以基于任何类型的搜索词 无论数据类型如何 实现内存高效和更快的搜索
  • 使用 Boto3 通过 Python 将图像上传到 Amazon S3 的最有效方法

    我正在实现 Boto3 将文件上传到 S3 一切正常 我正在做的过程如下 我从 FileReader Javascript 对象获取 base64 图像 然后我通过ajax将base64发送到服务器 解码base64图像并生成一个随机名称来
  • Android SensorManager 和 Google Fit 原始传感器数据之间的区别?

    对于我的应用程序 我需要读取用户的最新心率以发送每条消息 一个是 Android SensorManager 另一个是 Google Fit 的 Sensors 还有三星的健康应用程序 不要认为这个应用程序会给我需要的数据 因为我不需要过去
  • 如何在 HTML 页面中显示代码(特别是 C++)?

    如何使用 HTML 在网站中显示代码 基本上 我有一个 C 程序 我想在我的网站上分享它 并且我想在页面中显示它 除了使用 HTML 文本之外 还有什么办法可以在 HTML 中显示 C 代码吗 HTML 包括一个名为 code https
  • static_cast<> 和 C 风格转换有什么区别? [复制]

    这个问题在这里已经有答案了 有什么理由更喜欢static cast lt gt 超过 C 风格的铸造 它们相等吗 有什么速度差异吗 C 风格的转换由编译器检查 C 风格的转换不是这样 并且可能在运行时失败 另外 C 风格的转换很容易搜索 而
  • 使用 xpath 计算 XML 中的元素数量

    我使用这个优秀的论坛来教自己一些基本的 xpath 来查询 XML 文件 我这里有一个 XML 文件的示例 我正在尝试使用 Matlab 导入 XML 文件中 3 个对象的 X Y 坐标
  • 使用 jQuery 修改 :after 伪元素的 CSS [重复]

    这个问题在这里已经有答案了 我用 after伪元素在块 li 就我而言 想法是区分当前选择的li来自其他人 在这里摆弄 http jsfiddle net kbpg6 html如下 ul li class active style back
  • FormControl 是用来做什么的?为什么使用它?应该如何使用呢?

    有人可以用外行的术语向我解释 FormControl 提供什么功能 以及为什么 如何使用它 我在 React 中使用 Material UI 我看到的许多表单示例都使用 FormControl 但我很难理解它的作用 以及它对于我的项目是否有