Skip to content
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

clone.weekday is not a function #123

Open
ChiaJune opened this issue Aug 10, 2020 · 14 comments
Open

clone.weekday is not a function #123

ChiaJune opened this issue Aug 10, 2020 · 14 comments

Comments

@ChiaJune
Copy link

dayjs <= 1.8.30 没有问题
dayjs > 1.8.30 点击日期选择器直接报错

TypeError: clone.weekday is not a function
    in DateBody (created by DatePanel)
    in div (created by DatePanel)
    in DatePanel (created by PickerPanel)
    in div (created by PickerPanel)
    in PickerPanel (created by InnerPicker)
    in div (created by InnerPicker)
    in div (created by PopupInner)
    in PopupInner (created by Align)
    in Align (created by CSSMotion)
    in CSSMotion (created by ForwardRef)
    in ForwardRef (created by Popup)
    in div (created by Popup)
    in Popup (created by Trigger)
    in Portal (created by Trigger)
    in Trigger (created by PickerTrigger)
    in PickerTrigger (created by InnerPicker)
    in InnerPicker (created by Picker)
    in Picker (created by Context.Consumer)
    in LocaleReceiver (created by Picker)
    in Picker (at Header.tsx:35)
    in header (at Header.tsx:33)
    in div (at Header.tsx:32)
@oferitz
Copy link

oferitz commented Aug 13, 2020

Same here.

jnoodle added a commit to jnoodle/picker that referenced this issue Aug 24, 2020
jnoodle added a commit to Conflux-Chain/react-ui that referenced this issue Aug 24, 2020
@oferitz
Copy link

oferitz commented Sep 21, 2020

This is still an issue. Please lock dayjs version to 1.8.30

@marian2js
Copy link

This workaround solves the issue without having to downgrade dayjs:

ant-design/ant-design#26190 (comment)

Those lines should be added into this library.

@jstaro
Copy link

jstaro commented Oct 21, 2020

I want to be able to use dayjs v1.9.x because they've fixed a slew of timezone-related issues from 1.8.3x, but it appears this library makes it impossible to use v1.9.x for now.

@marian2js
Copy link

@jstaro check my previous comment, you can use the latest dayjs by adding these lines. It worked for me with dayjs 1.9.3.

@jstaro
Copy link

jstaro commented Oct 21, 2020

@marian2js Yes I tried doing that, but it doesn't seem to work with the latest version of AntD (which relies on rc-picker) and the way antd-dayjs-webpack-plugin loads dayjs, it seems.

@iMuFeng
Copy link

iMuFeng commented Nov 17, 2020

@jstaro found a way to do this.

import dayjs from 'dayjs'
import advancedFormat from 'dayjs/plugin/advancedFormat'
import customParseFormat from 'dayjs/plugin/customParseFormat'
import localeData from 'dayjs/plugin/localeData'
import weekday from 'dayjs/plugin/weekday'
import weekOfYear from 'dayjs/plugin/weekOfYear'
import weekYear from 'dayjs/plugin/weekYear'

dayjs.extend(customParseFormat)
dayjs.extend(advancedFormat)
dayjs.extend(weekday)
dayjs.extend(localeData)
dayjs.extend(weekOfYear)
dayjs.extend(weekYear)

@jstaro
Copy link

jstaro commented Nov 23, 2020

@iMuFeng Thank you for the workaround. I will keep that in mind if we need it again! For now, we migrated our user code to use Luxon and only treat dayjs as a follow-along dependency of AntDesign, since we cannot fully control the version used.

@Jay-flow
Copy link

Jay-flow commented Dec 13, 2022

Any update?

@smithyj
Copy link

smithyj commented Jan 6, 2023

same error

@smithyj
Copy link

smithyj commented Jan 6, 2023

@jstaro found a way to do this.

import dayjs from 'dayjs'
import advancedFormat from 'dayjs/plugin/advancedFormat'
import customParseFormat from 'dayjs/plugin/customParseFormat'
import localeData from 'dayjs/plugin/localeData'
import weekday from 'dayjs/plugin/weekday'
import weekOfYear from 'dayjs/plugin/weekOfYear'
import weekYear from 'dayjs/plugin/weekYear'

dayjs.extend(customParseFormat)
dayjs.extend(advancedFormat)
dayjs.extend(weekday)
dayjs.extend(localeData)
dayjs.extend(weekOfYear)
dayjs.extend(weekYear)

it's work

@UnforgetMemory
Copy link

dayjs => 1.11.9

在没有使用导入dayjs自带国际化配置时候是正常的 导入后就出现了 。
使用上面 @iMuFeng 这个办法可以愉快工作。
我只是一个菜鸟程序员,从这段修补代码方式上我感觉是导出的dayjs覆盖了原有的DatePicker中的dayjs。

"It was working fine without importing the built-in internationalization configuration of dayjs, but after importing it, the issue occurred. Using the method mentioned above seems to work well. I'm just a novice programmer, but based on this code patch, it seems that the imported dayjs is overriding the original dayjs used in the DatePicker."

@OlyLis1005
Copy link

@jstaro found a way to do this.

import dayjs from 'dayjs'
import advancedFormat from 'dayjs/plugin/advancedFormat'
import customParseFormat from 'dayjs/plugin/customParseFormat'
import localeData from 'dayjs/plugin/localeData'
import weekday from 'dayjs/plugin/weekday'
import weekOfYear from 'dayjs/plugin/weekOfYear'
import weekYear from 'dayjs/plugin/weekYear'

dayjs.extend(customParseFormat)
dayjs.extend(advancedFormat)
dayjs.extend(weekday)
dayjs.extend(localeData)
dayjs.extend(weekOfYear)
dayjs.extend(weekYear)

thank you, it's work

@pavelee
Copy link

pavelee commented Jun 7, 2024

I wonder why this is still the issue 😳, there is lack of information inside the official docs 😞

I created adapter based only your solution, so it's more elegant to import inside components:

// this is adapter for antd datepicker
// import it instead of the original dayjs
// more info here: https://github.com/react-component/picker/issues/123#issuecomment-728755491

import dj from 'dayjs'
import advancedFormat from 'dayjs/plugin/advancedFormat'
import customParseFormat from 'dayjs/plugin/customParseFormat'
import localeData from 'dayjs/plugin/localeData'
import weekday from 'dayjs/plugin/weekday'
import weekOfYear from 'dayjs/plugin/weekOfYear'
import weekYear from 'dayjs/plugin/weekYear'

dj.extend(customParseFormat)
dj.extend(advancedFormat)
dj.extend(weekday)
dj.extend(localeData)
dj.extend(weekOfYear)
dj.extend(weekYear)

export const dayjs = dj;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants