ant-design / ant-design-mobile

Essential UI blocks for building mobile web apps.
https://mobile.ant.design
MIT License
11.51k stars 2.38k forks source link

CalendarPickerView 相关组件设置了 min 属性后 jumpTo jumpToToday 等方法不生效 #6518

Open hubingkang opened 6 months ago

hubingkang commented 6 months ago

Version of antd-mobile

5.30.0

Operating system and its version

No response

Browser and its version

No response

Sandbox to reproduce

https://codesandbox.io/p/sandbox/vibrant-jasper-g7yz6n?file=%2Fapp.tsx%3A18%2C18

What happened?

CalendarPickerView 相关组件设置了 min 属性后 jumpTo jumpToToday 等方法不生效

复现链接:https://codesandbox.io/p/sandbox/vibrant-jasper-g7yz6n?file=%2Fapp.tsx%3A18%2C18

Relevant log output

No response

day-xue commented 6 months ago

确实是这样

Jarryxin commented 6 months ago

预期是怎样的,调用 jumpTo jumpToToday 方法时,第一个渲染日期月份就是 jumpTo 传参的月份/当天的日期月份,原先展示的第一个就看不到了。 如 当前日期是 2024-01,jumpTo(2025-01) 就看不到 2024-01了。 代码中有下边的逻辑:

  const minDay = useMemo(
    () => (props.min ? dayjs(props.min) : current),
    [props.min, current]
  )

如果设置了最小值,那开始渲染的日期就是从最小值日期开始,所以 jumpTo jumpToToday 等方法不生效。

6425

day-xue commented 6 months ago

感觉可以重写一下

hubingkang commented 6 months ago

很多业务场景会有最大最小值,定位到当前选中的日期,这样体验会好很多。