henninghall / react-native-date-picker

React Native Date Picker is datetime picker for Android and iOS. It includes date, time and datetime picker modes. The datepicker is customizable and is supporting different languages. It's written with native code to achieve the best possible look, feel and performance.
MIT License
2.14k stars 326 forks source link

Invariant Violation: `new NativeEventEmitter()` requires a non-null argument. #832

Open zihaolam opened 2 weeks ago

zihaolam commented 2 weeks ago

Describe the bug ERROR Invariant Violation: new NativeEventEmitter() requires a non-null argument.

This error is located at: in DatePickerIOS (created by DatePickerWrapper) in DatePickerWrapper (created by BookSessionModal) in RCTView in Unknown (created by BookSessionModal) in BookSessionModal (created by ModalScreen) in ModalScreen in Unknown (created by Route(modal)) in Suspense (created by Route(modal)) in Route (created by Route(modal)) in Route(modal) (created by SceneView) in StaticContainer in EnsureSingleNavigator (created by SceneView) in SceneView (created by SceneView) in RCTView (created by View) in View (created by DebugContainer) in RCTView (created by View) in View (created by AppContainer) in RCTView (created by View) in View (created by AppContainer) in AppContainer (created by DebugContainer) in DebugContainer (created by MaybeNestedStack) in RNSScreen (created by Animated(Anonymous)) in Animated(Anonymous) (created by InnerScreen) in Suspender (created by Freeze) in Suspense (created by Freeze) in Freeze (created by DelayedFreeze) in DelayedFreeze (created by InnerScreen) in InnerScreen (created by Screen) in Screen (created by MaybeNestedStack) in Suspender (created by Freeze) in Suspense (created by Freeze) in Freeze (created by DelayedFreeze) in DelayedFreeze (created by ScreenStack) in RNSScreenStack (created by ScreenStack) in ScreenStack (created by MaybeNestedStack) in MaybeNestedStack (created by SceneView) in RCTView (created by View) in View (created by SceneView) in RNSModalScreen (created by Animated(Anonymous)) in Animated(Anonymous) (created by InnerScreen) in Suspender (created by Freeze) in Suspense (created by Freeze) in Freeze (created by DelayedFreeze)

Expected behavior For the datepicker to render

To Reproduce

import React from "react";
import DatePicker from "react-native-date-picker";
import { View, Text } from "tamagui";

export const BookSessionModal = () => {
    const [isDatePickerOpen, setIsDatePickerOpen] = React.useState(false);
    const [selectedDate, setSelectedDate] = React.useState<Date>(new Date());
    return (
        <View>
            <Text>Book Session</Text>
            <DatePicker
                modal
                open={isDatePickerOpen}
                date={selectedDate}
                onConfirm={(date) => {
                    setIsDatePickerOpen(false);
                    setSelectedDate(date);
                }}
                onCancel={() => {
                    setIsDatePickerOpen(false);
                }}
            />
        </View>
    );
};

Smartphone (please complete the following information):

andydotdaniel commented 2 weeks ago

Are you running this in your unit test? I received the same error but only when running unit tests using Jest.

MarcosJBM commented 2 weeks ago

Having the same problem.

jvgeee commented 2 weeks ago

@zihaolam @MarcosJBM I was having this issue too, FYI in my experience Invariant Violation: new NativeEventEmitter() bugs in RN seem to be caused by a pods/bundling mismatch between RN and native modules.

For me, updating my packages, updating pods and rebuilding for IOS fixed it:

rocket13011 commented 2 weeks ago

For jest add on setup file jest.mock('react-native-date-picker', () => 'DatePicker');

btsungu commented 1 week ago

Any solution for this issue? The date picker works fine on Android but I get this error on iOS. I'm running RN 0.67 and React Native Date Picker ^5.0.4

colingraydon commented 6 days ago

Going back go version 4.4.0 solved it for my team.