React antd DatePicker日期选择框 Upload Slider使用

10 篇文章 0 订阅
1 篇文章 0 订阅

1.

 

import moment from 'moment';

2.例如

import zhCN from 'antd/es/date-picker/locale/zh_CN'; // 引入中文包

1.方法


setStartDate=(current)=>{
        
        return current < moment().subtract(1, 'day'); //限制等于大于今天日期
                
    };
    
    onStartChange=(e,dateString)=>{
        
        console.log(dateString);
        if (this.state.endValue__string !=null && dateString>this.state.endValue__string) return;

        this.setState({
            startValue:e,
            startValue_string:dateString
        });
    }
    onEndChange=(e,dateString)=>{

        if (this.state.startValue_string >dateString) return;
        this.setState({
            endValue:e,
            endValue__string:dateString
        });
    }


2.html

<DatePicker disabledDate={this.setStartDate} 
locale={zhCN}
                            value={state.startValue}
                            onChange={this.onStartChange}
                            placeholder={global.t('myProposal.text16')} allowClear={false} showToday={false} /><div className='icon'>—</div>
                                <DatePicker disabledDate ={this.setStartDate} 
                                value={state.endValue}
                                onChange={this.onEndChange}
                                placeholder={global.t('myProposal.text17')} allowClear={false} showToday={false} />

3.upload 

import { Component } from 'react';

import './index.less';
import { Col, Row, Upload } from 'antd';
import { PlusOutlined } from '@ant-design/icons';
export default class ConfimModal extends Component {
    constructor(props) {
        super(props);

        this.state = {
            imageUrl: ''

        };

        if (props.onRef) {
            props.onRef(this);
        }
    }

    changeMenu = (e) => {

    }
    onChange = (info) => {
        console.log(localStorage.getItem('avatar') != undefined);
        console.log(info.fileList);


        this.getBase64(info.file.originFileObj, (url) => {
            this.setState({
                imageUrl: url
            });
            localStorage.setItem('avatar', url)
        });

    }
    getBase64 = (img, callback) => {
        const reader = new FileReader();
        reader.addEventListener('load', () => callback(reader.result));
        reader.readAsDataURL(img);
    };

    render() {
        const state = this.state;
        return (
            <Upload
                name="avatar"
                listType="picture-circle"
                className="avatar-uploader"
                accept=".jpg , .png"	//文件类型

                showUploadList={false}

                onChange={this.onChange}
            >
                {state.imageUrl || localStorage.getItem('avatar') != undefined ? <img src={localStorage.getItem('avatar')} alt="avatar" style={{ width: '100%' }} /> : <PlusOutlined />}
            </Upload>
        );
    }

}

//
css
.avatar-uploader {
                &>.ant-upload-select {
                    width            : 102px;
                    height           : 102px;
                    margin-inline-end: 8px;
                    margin-bottom    : 8px;
                    text-align       : center;
                    vertical-align   : top;
                    background-color : rgba(0, 0, 0, .02);
                    border           : 1px dashed #d9d9d9;
                    border-radius    : 8px;
                    cursor           : pointer;
                    transition       : border-color .3s;
                    border-radius    : 50%;

                    &>.ant-upload {
                        display        : flex;
                        align-items    : center;
                        justify-content: center;
                        height         : 100%;
                        text-align     : center;

                    }
                }
            }

3.Slider



onChange = (e) => {
        this.setState({
            slideValue: e
        });
    }





<Slider
                        style={{ width: ' 100%' }}
                        marks={{
                            0: '0%',
                            25: '25%',
                            50: '50%',
                            75: '75%',
                            100: '100%'
                        }}
                        tooltip={{
                            formatter: (value) => {
                                return `${value}%`;
                            }
                        }}
                        value={state.slideValue}
                        onChange={this.onChange}
                    />

tabs

import { Tabs } from 'antd';
const { TabPane } = Tabs;

changeTab = e => {
        this.setState({
            goods: null
        });
    }


 <Tabs className='select-type' defaultActiveKey="1" tabBarExtraContent={OperationsSlot} onChange={this.changeTab}>
                                <TabPane tab={global.t('nft.role')} key="1"></TabPane></Tabs>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
antdDatePicker组件也可以通过类似的方式实现清空功能。antdDatePicker组件提供了一个allowClear属性,设置为true时就可以显示清空按钮。在清空按钮的点击事件中,可以将DatePicker组件的值设置为null或默认值。 示例代码: ``` import React, { useState } from 'react'; import { DatePicker } from 'antd'; function App() { const [date, setDate] = useState(null); const handleClear = () => { setDate(null); }; return ( <> <DatePicker value={date} onChange={value => setDate(value)} allowClear /> <button onClick={handleClear}>清空</button> </> ); } export default App; ``` 在这个示例中,另一个需要注意的点是,antdDatePicker组件的值是一个Moment.js对象,而不是一个Date对象。因此,在onChange事件中获取到的value是一个Moment.js对象。如果需要将其转换为Date对象,可以使用toDate方法,例如:value.toDate()。 另外,antdDatePicker组件还提供了一个ref属性,可以通过获取到这个ref来调用DatePicker组件的方法,包括clear方法。使用方式与React中的示例类似。 示例代码: ``` import React, { useRef } from 'react'; import { DatePicker } from 'antd'; function App() { const datePickerRef = useRef(null); const handleClear = () => { datePickerRef.current.clear(); }; return ( <> <DatePicker ref={datePickerRef} allowClear /> <button onClick={handleClear}>清空</button> </> ); } export default App; ``` 以上是在React使用antdDatePicker组件实现清空功能的方法,可以根据实际需要选择适合自己的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值