I'm using multiple @react-native-community/datetimepicker's in my component and they both call the same function when the user picks a date.
How do I get the ID or name of the datetimepicker the user has used? I checked but was not able to find the ID or name property. This is what the date picker looks like:
<DateTimePicker
testID="myDate1"
value={myDateValue}
mode="date"
display="default"
onChange={this.onCalendarDateChange} />
And this is the function that gets called when the user selects a date:
onCalendarDateChange(event, selectedDate) {
const id = event.???
}
CodePudding user response:
Based on its the document event is an object with two keys
const event: AndroidEvent = {
type: 'set',
nativeEvent: {},
};
it does not return any ID to catch it
CodePudding user response:
After working with this package a while, I realized, the idea is to have a single datetimepicker in a form which is why there's no way to retrieve the ID of the picker.
The simple solution I came up with, which works nicely, is to capture the name of the form field for which the datetimepicker is collecting data when I make it visible.
In my case, I have two form fields for which I needed a datetimepicker i.e. startDate and endDate and initially I was trying to use two separate datetimepicker's in my form. This is completely unnecessary.
I now use a single datetimepicker and when the user clicks the calendar icon to show the datetimepicker, I set the name of the form field i.e. startDate or endDate in the state. Once the user selects a date, the onCalendarDateChange() gets called and I simply read from the state whether it's startDate or endDate field that invoked the datetimepicker.
So anyone who needs a datetimepicker for multiple form fields can simply use a single datetimepicker to get the job done using my or a similar approach.
