Material ui DatePicker 可以在没有对话框的情况下使用类似的组件吗?

IT技术 reactjs material-ui
2021-05-02 12:13:00

我想在 Material UI 中使用 DatePicker,并且我希望它始终显示在模板中,但 DatePicker 的默认设置是聚焦文本字段并显示对话框。

是否可以在不使用对话框和聚焦文本字段的情况下显示 DatePicker。让它总是在渲染展示中显示 DatePicker 组件?

2个回答

material-ui v0.x的解决方案

如果我理解正确,您希望在没有任何对话框和输入的情况下显示Calendar组件DatePicker如果是这种情况,您可以Calendar像这样导入内部组件:

import Calendar from 'material-ui/DatePicker/Calendar';

然后渲染,例如:

<Calendar 
    autoOk={false}
    cancelLabel={false}
    firstDayOfWeek={1}
    onTouchTapDay={this.handleTouchTapDay}
    mode={'portrait'}
    open={true}
    ref="calendar"
/>

还有一些其他props可用于Calendar,我没有在这个例子中使用过。你可以发现他们在这里的源代码Calendar

这是我在渲染后得到的:

在此处输入图片说明


【material-ui 4x的解决方案】

在 v4 日期选择器中有一个单独的包, @material-ui/pickers

这是关于此文档

代码几乎相同,只是对于新的选择器,需要用MuiPickersUtilsProvider. 下面是一个最简单的例子:

import React from "react";
import { render } from "react-dom";

import DateFnsUtils from "@date-io/date-fns";
import { MuiPickersUtilsProvider, Calendar } from "@material-ui/pickers";

render(
  <MuiPickersUtilsProvider utils={DateFnsUtils}>
    <Calendar date={new Date()}/>
  </MuiPickersUtilsProvider>,
  document.querySelector("#root")
);

沙盒

对的,这是可能的:

<div>
  <DatePicker hintText="Portrait Inline Dialog" container="inline" />
</div>

容器props:

用于控制输入字段聚焦时日期选择器的显示方式。对话框(默认)将 DatePicker 显示为带有模式的对话框。inline 在输入字段下方显示 DatePicker(类似于自动完成)。