【Antd】给 DatePicker 设置快捷时间选项

文章目录

  • antd 版本:
shell 复制代码
"antd": "^4.0.0",
  • api可以看出,他只提供了showToday的快捷选项,那我们如果要设置其他快捷选项该怎么办呢?
  • 这使用就要用到他的renderExtraFooter属性,给自定义快捷项一个放置的位置
  • 由于他没有属性可以像showToday直接设置时间,所以需要手动给DatePicker组件赋值value
  • 有关moment是怎么设置相应时间,可以看官方文档:http://momentjs.cn/
ts 复制代码
import { DatePicker, Space } from 'antd';
import React from 'react';

const { RangePicker } = DatePicker;

const App: React.FC = () => {
	const [value, setValue]= useState<any>(null)
	// 获取对应天数后的时间。
	const getDate = (val)=>{
		switch(val){
			case '七天':
				// startOf表示从今天开始,add表示往后加7天,format表示最后输出的格式2024-03-12
				return moment().startOf('day').add(7, 'days').format('YYYY-MM-DD');
			case '一个月':
				return moment().startOf('day').add(1, 'months').format('YYYY-MM-DD');
			case '半年':
				return moment().startOf('day').add(6, 'months').format('YYYY-MM-DD');
			case '一年':
				return moment().startOf('day').add(1, 'year').format('YYYY-MM-DD');
			defalult: 
				return val;
		}
	}
    return <DatePicker 
    	// 关闭今天的快捷项,避免出现2个页脚
    	showToday={false}
    	// 动态控制value值
    	value={value} 
    	onChange={date => setValue(date)}
    	// 添加快捷选项页脚
    	renderExtraFooter: () => {
	    	return (
        		<Space>
            		<a onClick={() => setValue(getDate('七天'))}>七天</a>
                	<a onClick={() => setValue(getDate('一个月'))}>一个月</a>
                	<a onClick={() => setValue(getDate('半年'))}>半年</a>
                	<a onClick={() => setValue(getDate('一年'))}>一年</a>
            	</Space>
         )} 
     />
{;

export default App;
  • 效果图:
相关推荐
闲蛋小超人笑嘻嘻6 分钟前
localStorage用法详解
前端
Swift社区10 分钟前
用 RN 的渲染模型,反推 Vue 列表的正确拆分方式
前端·javascript·vue.js
Mr_chiu10 分钟前
微前端从入门到精通:Vue开发者的大型应用架构演进指南
前端·架构
Violet_YSWY14 分钟前
Vue-Pinia defineStore 语法结构
前端·javascript·vue.js
全栈陈序员14 分钟前
v-if 和 v-for 的优先级是什么?
前端·javascript·vue.js·学习·前端框架·ecmascript
xinyu_Jina16 分钟前
Info Flow:大规模列表渲染中的UI虚拟化、数据懒-加载与前端性能工程
前端·ui
GISer_Jing18 分钟前
JD AI全景:未来三年带动形成万亿规模的人工智能生态
前端·人工智能·aigc
全栈陈序员20 分钟前
你对 SPA 单页面应用的理解?它的优缺点分别是什么?如何实现 SPA 应用?
前端·vue.js·学习·前端框架·vue
我是伪码农24 分钟前
动态表格案例
前端·javascript·html
我是伪码农25 分钟前
随机点名案例
前端·css·css3