mmazzarolo / react-native-modal-datetime-picker

A React-Native datetime-picker for Android and iOS
MIT License
2.97k stars 397 forks source link

Setting display: 'inline' causes android app to crash #640

Closed lyqht closed 2 years ago

lyqht commented 2 years ago

Platforms

Works fine on iOS, crashes on android.

Versions

Description

Component

<DateTimePickerModal
        isVisible={isDatePickerVisible}
        mode="datetime"
        date={value}
        display={'inline'}
        onConfirm={handleConfirm}
        onCancel={hideDatePicker}
      />

Error observed in Android logs

FATAL EXCEPTION: main
Process: com.lyqht.billy, PID: 12573
java.lang.IllegalArgumentException: No enum constant com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.INLINE
    at java.lang.Enum.valueOf(Enum.java:257)
    at com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.valueOf(RNDatePickerDisplay.java:13)
    at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.getDialog(RNDatePickerDialogFragment.java:67)
    at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.createDialog(RNDatePickerDialogFragment.java:104)
    at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.onCreateDialog(RNDatePickerDialogFragment.java:44)
    at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:403)
    at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1484)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
    at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
    at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
    at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Reproducible Demo

Project -> click on add bill -> click on datetime picker.

Question

Do i have to set this prop conditionally based on the platform that the app is on? I didn't see such info on README.md

lyqht commented 2 years ago

Tested with the community package <RNDateTimePicker display='spinner' />, it also crashes on android.