CalendarPickerView 相关的一些问题 #6759
Unanswered
yuanjiu041
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
CalendarPickerView 组件内部有一个 state 变量 current
https://github.com/ant-design/ant-design-mobile/blob/master/src/components/calendar-picker-view/calendar-picker-view.tsx#L116
current 的初始值是你传入的 value 或者当前的时间
这个变量看起来是标记整个 view 应该滚动到什么位置的
这就可以保证,你的 view 一打开的时候,就停留在今天或者你选中的位置
这个变量还用在其他两个地方
min
和max
的时候用来计算minDay
和maxDay
ref
上的jumpTo
和jumpToToday
的时候会更新current
接下来事情就开始变得诡异了
在开发者没有传入
min
和max
的情况下,view 会根据current
计算月份是当前月到 6 个月后(假设开发者也没有传入 value)那开发在调用
jumpTo
之类的方法后,current 就会更新,那依赖current
计算的minDay
和maxDay
也会同步的更新。我本来的日期范围可能是当前 2024-10 到 2025-04,我调用 jumpTo 到一年后,我再次打开 view,我的日期范围就是 2025-10 到 2026-04,这应该不太合理。
另外就是
useSyncScroll
内部,每次打开的时候就会进行一次滚动,滚动到 current 的位置我不确定一开始的设计是不是想要自动滚动到用户选择的日期(我觉得这个比较合理)、如果是为了滚动到用户选择的日期,那就需要在 组件
onChange
的时候,自动更新一下current
,很显然,现在没有。目前current
的更新,仅能通过ref
上的两个jumpXXX
方法触发。Beta Was this translation helpful? Give feedback.
All reactions