MUI - 单击文本字段中的任意位置时打开日期选择器

2024-03-18

我有一个日期选择器,当用户单击字段中的任意位置而不仅仅是日历图标时,我想显示该日期选择器。

这是选择器

export function DatePickerField(props) {
  ......

  return (
      <Grid container>
          <MuiPickersUtilsProvider utils={DateFnsUtils}>
              <KeyboardDatePicker
                  {...field}
                  {...props}
                  disableToolbar
                  inputVariant="outlined"
                  value={selectedDate}
                  onChange={_onChange}
                  error={isError}
                  autoOk
                  invalidDateMessage={isError && error}
                  helperText={isError && error}
              />
          </MuiPickersUtilsProvider>
      </Grid>
  );
}

我需要这样做,因为如果手动输入日期,它不会抛出任何错误,但我得到invalid date在表单数据中。

单击字段时如何显示选择器?


MUI v5添加了DatePicker https://mui.com/components/date-picker组件中的@mui/lab包裹。如果您希望在用户单击内部后打开选择器TextField, use MobileDatePicker,但这没有日历图标,请参阅this https://stackoverflow.com/a/69808162/9449426如果你想拥有一个,请回答。

<MobileDatePicker
  {...}
  renderInput={(params) => <TextField {...params} />}
/>

The DesktopDatePicker不过确实有日历图标,但是你必须编写额外的代码来控制open状态并告诉选择器何时打开TextField被点击:

<DatePicker
  open={open}
  onOpen={() => setOpen(true)}
  onClose={() => setOpen(false)}
  renderInput={(params) => {
    return (
      <TextField
        {...params}
        onClick={(e) => setOpen(true)}
      />
    );
  }}
/>

原答案

您可以控制KeyboardDatePicker's open状态并将其设置为true当。。。的时候TextField被点击:

const [open, setOpen] = useState(false);

return (
  <KeyboardDatePicker
    open={open}
    onOpen={() => setOpen(true)}
    onClose={() => setOpen(false)}
    TextFieldComponent={(props) => (
      <TextField {...props} onClick={(e) => setOpen(true)} />
    )}
    {...other}
  />
);

现场演示

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

MUI - 单击文本字段中的任意位置时打开日期选择器 的相关文章

随机推荐

  • scikit learn:与 GridSearchCV 兼容的自定义分类器

    我已经实现了自己的分类器 现在我想对其运行网格搜索 但出现以下错误 estimator fit X train y train fit params TypeError fit takes 2 positional arguments bu
  • ASP>net MVC 可重用部分

    在 winforms 和 ASP net 中使用 net 几年后 我现在开始进入 MVC 我知道有点晚了 对我来说 一个主要的困惑是可重用 组件 的概念 类似于网络表单中用户控件的概念 例如 我希望在我的网站的会员区域内有许多 小部件 其中
  • OpenCL 内置函数“选择”

    我不清楚内置 OpenCL 函数的目的是什么select 有人可以澄清一下吗 来自 OpenCL 规范 功能选择 基因型a 基因型b 基因型c 返回 对于向量类型的每个分量 结果 i 如果设置了 c i 的 MSB b i a i 在这种情
  • 在 asp.net C# 中使用客户端 ID 和客户端密钥访问 Sharepoint 列表

    目前 我可以使用用户 ID 和密码访问共享点列表 如下所示 但想了解如何使用客户端 ID 和客户端密码访问列表 string siteUrl https xyz sharepoint com sites MyList ClientConte
  • VBA 运行时错误 3134

    以下代码创建一个 SQL 字符串 该字符串在 MS Access 中产生语法错误 3134 sql INSERT INTO tblItems desc descExtended itemNumber currentPrice VALUES
  • Spring Security 加密 MD5

    我有一个使用 spring 框架和 spring security 进行登录的 java web 应用程序 在我的数据库中 我的密码在保存之前已加密为 MD5 我在 application config xml 中添加了这段代码
  • jQuery DataTable - 搜索一列下拉列表

    我有一个简单的 jQuery 数据表 其中包含 4 列 其中一列是下拉列表 table tfoot tr th class searchBox Vendor Location th th class searchBox Currency t
  • RestKit valueTransformer 没有被调用

    我正在使用 RestKit 与我的 JSON 端点对话 端点返回一个以 毫秒数 为单位的 UNIX 时间戳 但是 RestKit 的默认转换器假定它是 秒数 并且我在 NSDate 中得到了错误的值 所以我环顾四周 发现我需要使用自定义 v
  • 在同一请求中创建和更新结构时可能出现的竞争条件 - Coldfusion

    大约一年前 我问了一个关于我在应用程序中遇到的错误的问题 该错误表明可能存在竞争条件 在 ColdFusion 中创建结构体时可能存在竞争条件 https stackoverflow com questions 19859690 possi
  • 使用 clang 在命令行上编译多个 Objective-C 文件

    希望是简单的问题 我正在尝试使用 clang 从命令行学习基本的 Objective C 编译 我知道 Xcode 对于复杂的项目来说是一个更好的解决方案 我计划很快转向它 但我个人觉得如果我可以在终端中手动编译一门语言 我会更好地理解它
  • Ember 过渡和渲染完成事件

    是否触发了任何事件 表明转换 渲染已完成 并且 dom 可见 准备就绪 setupcontroller activate 在 dom 构建 渲染之前 仅当我已经插入一个元素并且我只是将其下面的模型切换出来时 didInsertElement
  • 通过 PHP 执行 .sh 脚本

    我有一些游戏服务器 我需要运行 shell 脚本来提高质量 我试图弄清楚如何通过同一服务器上的网页运行这些脚本 这是一个 Ubuntu 专用服务器 网站文件位于 var www 我需要手动运行的 sh 文件位于 home amservers
  • 在 Lambda 中获取用户的 IP 地址(使用 API 网关和 Python)

    我正在使用这种技术 如何使用 Python 检索 AWS Lambda 公共 IP 地址 https stackoverflow com questions 48619163 how could i retrieve aws lambda
  • 使用 Swift 中的新并发将同步函数转换为异步函数

    我想将同步函数转换为异步函数 但我不知道正确的方法是什么 假设我有一个需要很长时间才能获取数据的同步函数 func syncLongTimeFunction throws gt Data Data 然后我在下面的函数中调用它 它仍然是一个同
  • 为什么要更改选项卡,停止 ios 应用程序中的动画?

    我的应用程序中有多个选项卡 我的一个视图控制器正在运行动画 当我切换到另一个视图控制器 并再次进入带有动画的视图控制器时 动画停止 有人可以指导我使用 Xcode 甚至在 Iphone 应用程序中切换选项卡吗 IBAction btn id
  • 根据音色(音调)按相似度对声音进行排序

    解释 我希望能够根据以下内容对列表中的声音集合进行排序音色 音调 的声音 这是一个玩具示例 其中我手动对我创建的 12 个声音文件的声谱图进行了排序 上传到这个仓库 https github com samgermain sort soun
  • 如何在Postman中存储和重用cookie?

    我在用着Postman https www getpostman com 测试和使用 API 对于登录 url API 需要发送 POST 请求username and password作为字段 我这样做 我得到了200回复我已登录的消息
  • Cythonized 函数出乎意料地慢

    我想加快我经常使用的功能 并且我考虑使用 cython 然而 在尝试了我在文档中找到的所有可能的 cython 优化之后 cython 代码比 python numpy 函数慢大约 6 倍 令人失望 这是我的测试代码 forward1是py
  • BLE不同的MTU用于不同的实现

    我在 Android 上尝试了 BLE 连接的不同实现 一种使用 RxAndroidBle 另一种使用简单的 Android API 我使用 RxAndroidBle 示例应用程序进行测试 我连接到具有相同服务和特征的相同外围设备 不过 当
  • MUI - 单击文本字段中的任意位置时打开日期选择器

    我有一个日期选择器 当用户单击字段中的任意位置而不仅仅是日历图标时 我想显示该日期选择器 这是选择器 export function DatePickerField props return