ant-design icon indicating copy to clipboard operation
ant-design copied to clipboard

有关RangePicker时间选择的触发逻辑

Open theDoinb opened this issue 3 years ago • 7 comments

What problem does this feature solve?

一. 我感觉现在用的很难受,下面列举一下原因: 1 其一是我选择了例如9.8-9.22,我想选择 6.8-6.22,我选择了6.8 onChange就触发了一次,在v3似乎不是如此,与我预期不符,这是否加个触发时机? 2. 其二我选择了9.8-9.22,我想选择 6.8-6.22,但是我点了6.8 后,当前的时间选择面板却跳回了 9-10月份,我突然就丢失了我刚选择的6.8的焦点,这难道不奇怪吗?我感觉我突然楞了一下

二. 我查看过了其他UI库: 1. elementUI,是比较符合我原有的认知的,是选择完时间段后再触发,每一次选择都是默认重选的意思 2. semiDesign,虽然他说有借鉴ant,但就在这个组件上,我认为他们做的更好,首先我提到第2点,选中第一个日期后,他们是不会突兀的跳回之前选中的时间面板,其次,就第1点而言,他们提供了 onChangeWithDateFirst 这个参数,来去给予开发人员更多的场景,我能决定我是否选中了第一个日期我就进行onChange触发,因为有些场景下,是不需要确认键,我们仅仅是想通过 RangePicker 去选中不同的某段日期去查看数据,那这种场景下,目前的组件就使用的十分难受了

What does the proposed API look like?

theDoinb avatar Oct 31 '22 03:10 theDoinb

You may look for issues:

  1. 50% #36917

🤖 By issues-similarity-analysis

github-actions[bot] avatar Oct 31 '22 03:10 github-actions[bot]

我觉得现在antd的逻辑更灵活啊。按照你说的逻辑,就是一重选的话,就必须把整个时间段都重选,点两次,才能触发onChange。现在的逻辑是,可以只改起始时间或者结束时间。这样的话,就属于把选择还给用户。用户想只改一个就只改一个,想全部改就全部改。我始终觉得就是要把选择还给用户,而不是绑架用户的操作。

Mzhang1994 avatar Oct 31 '22 07:10 Mzhang1994

我觉得现在antd的逻辑更灵活啊。按照你说的逻辑,就是一重选的话,就必须把整个时间段都重选,点两次,才能触发onChange。现在的逻辑是,可以只改起始时间或者结束时间。这样的话,就属于把选择还给用户。用户想只改一个就只改一个,想全部改就全部改。我始终觉得就是要把选择还给用户,而不是绑架用户的操作。

你是想的改一个是没有问题,但是估计你没看全我说的,我并没有说改一个有问题,而是已选的情况下,我选中开始时间,想再选结束时间,左侧面板突然跳回了之前选中的面板,十分突兀,其二就是当前组件如果我想在没有确认键,仅仅想让用户通过选取某个时间段去拿数据,而不是点一个就去取,现在是做不了。但是semi design他提供了这么个拓展的能力,可以同时满足。 你可以尝试去对比下两UI,你会不会感觉到面板突然焦点消失的突兀?

theDoinb avatar Oct 31 '22 11:10 theDoinb

人眼会被动态的东西给吸引,例如 antd 的锚点,当你滚动页面的时候,锚点左侧的小蓝球也是会吸引住用户的目光的,这时候你看到锚点停到某个位置,但是当前页面却没有该锚点对应的标题,确实会让人刹那感觉到懵

theDoinb avatar Oct 31 '22 11:10 theDoinb

如果仅仅是想选中一个时间我就去改变,那我可以开始时间与结束时间分成两个组件,进而让用户去选中,我何苦用一个时间范围的组件,去让用户在里面选一个开头或者选一个结尾呢,数据库也不会把两个时间存成一个字段吧?现在这种感觉有点更倾向于是,两个单日期选择器的UI合并,并没有那么的整体,当然你们也可能有你们的想法,我只是提出了自己的想法

theDoinb avatar Oct 31 '22 11:10 theDoinb

我也遇到了相同的的问题,如果onChange每次都触发,那么似乎就允许用户只选择一边的时间,但事实上组件又强制用户必须同时选择 开始 / 结束时间。

rick-chou avatar Dec 08 '22 02:12 rick-chou

@theDoinb 可以在 onOpenChange 中处理逻辑 🤣

rick-chou avatar Dec 09 '22 10:12 rick-chou

Picker component has been refactor in 5.14.0, and this issue is discussed and handled with https://github.com/react-component/picker/pull/691 which will be marked as closed.

Please feel free to create new issue if you have any further question :)

Picker 组件于 5.14.0 版本进行了重构,此问题已被 https://github.com/react-component/picker/pull/691 中进行讨论与处理。

如果有任何问题,欢迎随时创建新的 issue :)

zombieJ avatar Feb 20 '24 06:02 zombieJ