-
-
Notifications
You must be signed in to change notification settings - Fork 317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: supprt custom format #142
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/react-component/picker/55dnvn147 |
Codecov Report
@@ Coverage Diff @@
## master #142 +/- ##
=======================================
Coverage 99.59% 99.59%
=======================================
Files 45 45
Lines 1989 1994 +5
Branches 591 596 +5
=======================================
+ Hits 1981 1986 +5
Misses 6 6
Partials 2 2
Continue to review full report at Codecov.
|
指的是 inputReadonly? |
it('custom format', () => { | ||
const wrapper = mount( | ||
<MomentRangePicker | ||
format={[(val: Moment) => `custom format:${val.format('YYYYMMDD')}`, 'YYYY-MM-DD']} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(val: Moment) => 'YYYYMMDD'
和
(val: Moment) => val.format('YYYYMMDD')
是等价的么?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
不等价,返回的字符串直接作为显示用,前者会直接显示为 'YYYYMMDD'
。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
感觉比较怪。
"YYYY-MM-DD"
和 () => "YYYY-MM-DD"
容易认为是等价的。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
format={(val: Moment) => `custom format:${val.format('YYYYMMDD')}`}
前后两个 format。感觉前面的 format 更像是 inputRender,而不是 moment.format 需要的第一个参数。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
你是想我们需要再对函数的返回值中的 "YYYY-MM-DD"
进行过滤然后二次 format?
这样的话复杂度就大了很多,需要对返回的字符串中类似'YYYY-MM-DD'
的所有这些日期格式 token 进行筛选替换。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
感觉我们去做不太实际,像 Moment、Dayjs、dateFns 这些库支持的日期格式可能不尽相同。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
功能上现在这种写法是更友好的,但是语义上我担心有歧义。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
那到时可以写个例子,说明一下
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
我是倾向于 format 作为 function 全部交给用户来自定义,不再帮转。禁止套娃。
不是,意思是 format 为函数时,此时输入框里面的值是未知的,无法根据输入的文本做反向解析,所以就把 input 的 |
那就暂定这样了,到时我在 antd 里面写个 demo 说明一下。 |
发完版本后我再去 |
@kermit-xuan 要在 antd 中升级并补充一下文档。 |
close #17222