React Native封装选择年月Picker组件

需要安装库  @ant-design/react-native

// MonthPicker.js
import React, {memo} from 'react';
import {DatePicker} from '@ant-design/react-native';

const MonthPicker = ({value, onChange, visible, onCancel}) => {
  return (
    <DatePicker
      value={value}
      visible={visible}
      onDismiss={onCancel}
      mode="month"
      defaultDate={new Date()}
      minDate={new Date(2015, 1, 1)}
      // maxDate={new Date(2026, 11, 3)}
      onChange={onChange}
      format="YYYY-MM-DD"
    />
  );
};

export default memo(MonthPicker);

用法

// 设置初始值
const [time, setTime] = useState(new Date('2020-06-01'));
const onCancel = useCallback(() => {
  setVisible(false);
}, []);

const onChange = useCallback((time) => {
  setTime(time);
  setVisible(false);
}, []);  

// 时间显示,点击时间,选择年月组件显示
<Flex
  justify="end"
  onPress={() => setVisible(true)}
  style={{paddingRight: 10}}>
  <Text style={{fontSize: 15}}>
    {time ? moment(time).format('YYYY年MM月') : '请选择'}
  </Text>
  <Icon name="caret-down" size={14} color="rgba(0, 0, 0, 0.5)" />
</Flex>
// 组件
<MonthPicker
  visible={visible}
  value={time}
  onCancel={onCancel}
  onChange={onChange}
/>

效果图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值