## Migration from the older components
`RNDateTimePicker` is the new common name used to represent the old versions of iOS and Android.
On Android, open picker modals will update the selected date and/or time if the prop `value` changes. For example, if a HOC holding state, updates the `value` prop. Previously the component used to close the modal and render a new one on consecutive calls.
### DatePickerIOS
- `initialDate` is deprecated, use `value` instead.
```js
// Before
```
```js
// Now
```
- `date` is deprecated, use `value` instead.
```js
// Before
```
```js
// Now
```
- `onChange` now returns also the date.
```js
// Before
onChange = (event) => {};
;
```
```js
// Now
onChange = (event, date) => {};
;
```
- `onDateChange` is deprecated, use `onChange` instead.
```js
// Before
setDate = (date) => {};
;
```
```js
// Now
setDate = (event, date) => {};
;
```
### DatePickerAndroid
- `date` is deprecated, use `value` instead.
```js
// Before
try {
const {action, year, month, day} = await DatePickerAndroid.open({
date: new Date(),
});
} catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
```
```js
// Now
```
- `minDate` and `maxDate` are deprecated, use `minimumDate` and `maximumDate` instead.
```js
// Before
try {
const {action, year, month, day} = await DatePickerAndroid.open({
minDate: new Date(),
maxDate: new Date(),
});
} catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
```
```js
// Now
```
- `dateSetAction` is deprecated, use `onChange` instead.
```js
// Before
try {
const {action, year, month, day} = await DatePickerAndroid.open();
if (action === DatePickerAndroid.dateSetAction) {
// Selected year, month (0-11), day
}
} catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
```
```js
// Now
setDate = (event, date) => {
if (date !== undefined) {
// timeSetAction
}
};
;
```
- `dismissedAction` is deprecated, use `onChange` instead.
```js
// Before
try {
const {action, year, month, day} = await DatePickerAndroid.open();
if (action === DatePickerAndroid.dismissedAction) {
// Dismissed
}
} catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
```
```js
// Now
setDate = (event, date) => {
if (date === undefined) {
// dismissedAction
}
};
;
```
### TimePickerAndroid
- `hour` and `minute` are deprecated, use `value` instead.
```js
// Before
try {
const {action, hour, minute} = await TimePickerAndroid.open({
hour: 14,
minute: 0,
is24Hour: false, // Will display '2 PM'
});
if (action !== TimePickerAndroid.dismissedAction) {
// Selected hour (0-23), minute (0-59)
}
} catch ({code, message}) {
console.warn('Cannot open time picker', message);
}
```
```js
// Now
// It will use the hour and minute defined in date
```
- `timeSetAction` is deprecated, use `onChange` instead.
```js
// Before
try {
const {action, hour, minute} = await TimePickerAndroid.open();
if (action === TimePickerAndroid.timeSetAction) {
// Selected hour (0-23), minute (0-59)
}
} catch ({code, message}) {
console.warn('Cannot open time picker', message);
}
```
```js
// Now
setTime = (event, date) => {
if (date !== undefined) {
// Use the hour and minute from the date object
}
};
;
```
- `dismissedAction` is deprecated, use `onChange` instead.
```js
// Before
try {
const {action, hour, minute} = await TimePickerAndroid.open();
if (action === TimePickerAndroid.dismissedAction) {
// Dismissed
}
} catch ({code, message}) {
console.warn('Cannot open time picker', message);
}
```
```js
// Now
setTime = (event, date) => {
if (date === undefined) {
// dismissedAction
}
};
;
```