迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 >

使从 Material UI 中选择组件成为必需的输入

作者:迹忆客 最近更新:2023/03/06 浏览次数:

可重用的组件使在 React 中构建 UI 变得容易。Material UI 是最好的库之一,它提供自定义组件来帮助你在 React 中构建具有视觉吸引力和功能性的 UI。

该库包含用于许多不同目的的自定义组件。React 开发人员通常没有时间从头开始创建和设置输入组件的样式,因此他们从 Material UI 导入它们。

这些自定义组件通常具有标准外观,但它们具有提供许多自定义选项的内置 props。你可以使用它们来自定义自定义输入组件的外观和功能。

本文将讨论 Material UI 中的自定义输入组件之一。

该组件基于常规 HTML 中相同类型的 input 元素。选择 自定义组件允许你为用户提供多种选择。

自定义 Select 组件中的内置 props 使你能够创建适合你应用程序需求的元素。

例如,你可以让用户自由选择多个选项、自定义标签、自定义颜色等等。

定制的可能性有很多。查看官方 API 文档 以获得更好的想法。

有时,你需要将 Select 组件作为开发 React 应用程序的必需输入。这样,他们必须在继续下一步之前选择一个值。

如果用户决定在没有选择值的情况下提交表单,则该表单将不会被提交并会引发错误。此错误可能是选择组件下方的文本、弹出窗口或工具提示。

使用红色表示错误是一种常见的 UX 模式。

让我们看一个实际的例子。

export default function App() {
  const [error, setError] = useState(false);
  const [selectedValue, setSelectedValue] = useState(null);
  return (
    <form>
      <FormControl error={error} style={{ width: "200px" }}>
        <InputLabel htmlFor="age">Select Age</InputLabel>
        <Select
          name="age"
          value={selectedValue}
          onChange={(e) => setSelectedValue(e.target.value)}
        >
          <MenuItem value={10}>10</MenuItem>
          <MenuItem value={20}>20</MenuItem>
          <MenuItem value={30}>30</MenuItem>
        </Select>
        {error && <FormHelperText>Select a value</FormHelperText>}
      </FormControl>
      <br />
      <br />
      <button type="button" onClick={() => setError(!selectedValue)}>
        Submit
      </button>
    </form>
  );
}

这里有很多东西要解开。让我们从两个状态值开始 - errorselectedValue。我们使用 useState 挂钩来创建这些变量和更新它们的函数。

我们更新 error 变量的值以有条件地显示(或隐藏)错误消息。默认情况下,此值设置为 false 布尔值。

我们使用 selectedValue 变量来存储用户选择的值。默认情况下,我们将此变量设置为 null

如果用户没有选择任何值并尝试通过单击按钮提交表单,则事件处理程序将翻转默认的 null 值并将 error 变量设置为 true

然后我们的表单将显示一条错误消息。

我们还设置了一个 onChange 事件监听器。每当用户选择与当前选择不同的值时,事件侦听器将更新 selectedValue 变量。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 React 中循环遍历对象数组

发布时间:2023/03/18 浏览次数:124 分类:React

在 React 中循环对象数组: 使用 map() 方法迭代数组。 我们传递给 map() 的函数会为数组中的每个元素调用。 该方法返回一个新数组,其中包含传入函数的结果。 export default function App (

获取 React 中元素的类名

发布时间:2023/03/18 浏览次数:162 分类:React

在 React 中使用 event.target 获取元素的类名 获取元素的类名: 将元素上的 onClick 属性设置为事件处理函数。 访问元素的类名作为 event.currentTarget.className 。 export default function App () { cons

如何将 key 属性添加到 React 片段

发布时间:2023/03/18 浏览次数:152 分类:React

使用更详细的片段语法将 key 属性添加到 React 片段,例如 React.Fragment key={key} 。 更冗长的语法实现了相同的结果对元素列表进行分组,而不向 DOM 添加额外的节点。 import React from react

如何在 React 中删除事件监听器

发布时间:2023/03/15 浏览次数:203 分类:React

在 React 中删除事件监听器: 在 useEffect 挂钩中添加事件侦听器。 从 useEffect 挂钩返回一个函数。 当组件卸载时,使用 removeEventListener 方法移除事件监听器。 import {useRef, useEffect} from r

React 中在 map() 中使用条件跳出map

发布时间:2023/03/15 浏览次数:198 分类:React

React 中在 map() 中使用条件: 在数组上调用 map() 方法。 使用 if 条件,如果条件满足则显式返回。 否则返回不同的值或返回 null 以不呈现任何内容。 export default function App () { const arr =

在 React 中调用多个 onClick 函数

发布时间:2023/03/15 浏览次数:160 分类:React

在 React 中调用多个 onClick 函数: 在元素上设置 onClick 属性。 在事件处理函数中调用其他函数。 事件处理函数可以根据需要调用尽可能多的其他函数。 export default function App () { const s

在 React 中按类名查找所有元素

发布时间:2023/03/15 浏览次数:171 分类:React

在 React 中通过 className 查找所有元素: 使用 getElementsByClassName 方法获取具有特定类的所有元素。 将对该方法的调用放在 useEffect() 钩子中。 import {useEffect} from react ; const App = () = { useEf

在 React 中检查元素是否获取到焦点

发布时间:2023/03/15 浏览次数:154 分类:React

要检查元素是否在 React 中获得焦点: 在元素上设置 ref 属性。 元素呈现后,检查元素是否是文档中的活动元素。 如果是,则该元素被聚焦。 import {useEffect, useRef} from react ; export defaul

在 React 中悬停时显示元素或文本

发布时间:2023/03/13 浏览次数:160 分类:React

在 React 中悬停时显示元素或文本: 在元素上设置 onMouseOver 和 onMouseOut 属性。 跟踪用户是否将鼠标悬停在状态变量中的元素上。 根据状态变量有条件地渲染另一个元素。 import {useStat

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便