@uiw/react-date-input
v4.22.3
Published
DateInput component
Downloads
703
Readme
DateInput 日期输入框
显示一个月的日历,并允许用户选择单个日期。
import { DateInput, DateInputRange } from 'uiw';
// or
import DateInput,{ DateInputRange } from '@uiw/react-date-input';
// 在 `v4.13.0` 版本中增加 DateInputRange 组件
基本使用
import React from 'react';
import { DateInput, DateInputRange, Row, Col } from 'uiw';
export default function Demo () {
const [dataRange,dataRangeSet] =React.useState(['2022/02/25 15:06:24','2022/02/27 14:47:32'])
function onChange(selectedDate,dataRange) {
console.log('selectedDate',selectedDate,dataRange)
}
return (
<div>
<Row style={{ marginBottom:10 }}>
<Col style={{ width: 200 }} fixed>
<DateInput
value={new Date()}
datePickerProps={{ todayButton: '今天' }}
onChange={onChange}
/>
</Col>
<Col style={{ width: 200, marginLeft: 10 }} fixed>
<DateInput
value={new Date()}
disabled
onChange={onChange}
/>
</Col>
<Col style={{ width: 400, marginLeft: 10 }} fixed>
<DateInputRange
bodyStyle={{ width: 400 }}
format="YYYY/MM/DD HH:mm:ss"
value={dataRange}
datePickerProps={{ todayButton: '今天',showTime:true }}
onChange={onChange}
/>
</Col>
</Row>
</div>
)
}
在表单中使用
在 <Form />
表单中应用 <DateInput />
组件。
import React from 'react';
import { DateInput,DateInputRange, Notify, Button, Form, Row, Col } from 'uiw';
export default function Demo() {
const form = React.useRef(null)
const resetDateRange = () => {
form.current.resetForm()
}
const setDateRange = () => {
form.current.setFields({dateRange:[new Date(),new Date()]})
}
return (
<Form
ref={form}
onSubmit={({ initial, current }) => {
if (current.date) {
Notify.success({
title: '提交成功!',
description: `表单提交时间成功,时间为:${current.date} range:${current.dateRange}`,
});
} else {
Notify.error({
title: '提交失败!',
description: `表单提交时间成功,时间为:${current.date} range:${current.dateRange},将自动填充初始化值!`,
});
}
}}
fields={{
date: {
initialValue: '2019/02/17',
labelClassName: 'fieldLabel',
labelFor: 'date-inline',
children: <DateInput datePickerProps={{ todayButton: '今天' }} id="date-inline" />
},
dateRange: {
initialValue: ['2019/02/17', '2019/02/20'],
labelClassName: 'fieldLabel',
labelFor: 'date-inline',
children: <DateInputRange datePickerProps={{ todayButton: '今天' }} id="date-inline" />
},
}}
>
{({ fields, state, canSubmit }) => {
return (
<div>
<Row>
<Col style={{ width: 200 }} fixed>{fields.date}</Col>
<Col fixed>{fields.dateRange}</Col>
</Row>
<Row>
<Col style={{ overflow: 'auto', height: 130 }}>
<pre>
{JSON.stringify(state, null, 2)}
</pre>
</Col>
</Row>
<Row gutter={10}>
<Col>
<Button disabled={!canSubmit()} type="primary" htmlType="submit">提交</Button>
<Button onClick={resetDateRange} >重置</Button>
<Button onClick={setDateRange}>setValue</Button>
</Col>
</Row>
</div>
)
}}
</Form>
)
}
日期格式
import React from 'react';
import { DateInput } from 'uiw';
class Demo extends React.Component {
onChange(selectedDate) {
console.log('selectedDate:', selectedDate);
}
render() {
return (
<div style={{ width: 200 }}>
<DateInput
format="YYYY # MM # DD"
datePickerProps={{ todayButton: '今天' }}
onChange={this.onChange.bind(this)}
/>
</div>
)
}
}
export default Demo;
日期时间设置
import React from 'react';
import { DateInput } from 'uiw';
class Demo extends React.Component {
onChange(selectedDate) {
console.log('selectedDate:', selectedDate);
}
render() {
return (
<div style={{ width: 200 }}>
<DateInput
format="YYYY/MM/DD HH:mm:ss"
datePickerProps={{ showTime: true, todayButton: '今天' }}
onChange={this.onChange.bind(this)}
/>
</div>
)
}
}
export default Demo;
自动隐藏弹层
import React from 'react';
import { DateInput } from 'uiw';
class Demo extends React.Component {
onChange(selectedDate) {
console.log('selectedDate:', selectedDate);
}
render() {
return (
<div style={{ maxWidth: 200 }}>
<DateInput
autoClose={true}
format="YYYY/MM/DD HH:mm:ss"
datePickerProps={{ showTime: true, todayButton: '今天' }}
onChange={this.onChange.bind(this)}
/>
</div>
)
}
}
export default Demo;
Props
| 参数 | 说明 | 类型 | 默认值 |
| ---- | ---- | ---- | ---- |
| value | 初始时间值 | Date | - |
| placeholder | 输入框提示文字 | String | - |
| allowClear | 是否显示清除按钮 | Boolean | true |
| format | 格式化时间,规则查看 <formatter>
文档 | String | YYYY/MM/DD
|
| onChange | 选择一天时调用。 | Function(selectedDate:Date) | - |
| popoverProps | 将参数传递给 <Popover>
组件 | Object | - |
| datePickerProps | 将参数传递给 <DatePicker>
组件 | Object | - |
| disabled | 组件 <Input>
的属性,禁用日历 | Boolean | - |
| autoClose | 是否自动关闭弹层 | Boolean | false |
组件 DateInput
继承 <Input>
组件,更多属性文档请参考 <Input>
。
DateInputRange
在 v4.13.0
版本中增加 DateInputRange
组件。
| 参数 | 说明 | 类型 | 默认值 |
| ---- | ---- | ---- | ---- |
| value | 初始时间值 | Array<Date, string> | - |
| placeholder | 输入框提示文字 | String | - |
| allowClear | 是否显示清除按钮 | Boolean | true |
| format | 格式化时间,规则查看 <formatter>
文档 | String | YYYY/MM/DD
|
| onChange | 选择一天时调用。 | Function(selectedDate:Date, dateRange: Array<Date>) | - |
| popoverProps | 将参数传递给 <Popover>
组件 | Object | - |
| datePickerProps | 将参数传递给 <DatePicker>
组件 | Object | - |
| disabled | 组件 <Input>
的属性,禁用日历 | Boolean | - |
| bodyStyle | 选择框样式 | Object | { width: 300 } | - |
组件 DateInputRange
继承 <Input>
组件,更多属性文档请参考 <Input>
。