diff --git a/src/DatePickerAndroid.js b/src/DatePickerAndroid.js index 3cc5fbe..26610e5 100644 --- a/src/DatePickerAndroid.js +++ b/src/DatePickerAndroid.js @@ -18,8 +18,11 @@ const defaultWidth = 310 class DatePickerAndroid extends React.PureComponent { render() { const props = this.getProps() + const isClosed = this._isCurrentlyClosed(); + + this.previousProps = props; if (props.modal) { - if (props.open) { + if (props.open && isClosed) { NativeModules.RNDatePicker.openPicker( props, this._onConfirm, @@ -32,6 +35,8 @@ class DatePickerAndroid extends React.PureComponent { return } + _isCurrentlyClosed = () => !this.previousProps || !this.previousProps.open + getProps = () => ({ ...this.props, date: this._date(), diff --git a/src/DatePickerIOS.js b/src/DatePickerIOS.js index 7ffdcd1..f370a35 100644 --- a/src/DatePickerIOS.js +++ b/src/DatePickerIOS.js @@ -45,9 +45,11 @@ export default class DatePickerIOS extends React.Component { render() { const props = this._toIosProps(this.props) + const isClosed = this._isCurrentlyClosed(); + this.previousProps = props; if (props.modal) { - if (props.open) { + if (props.open && isClosed) { NativeModules.RNDatePickerManager.openPicker( props, this._onConfirm, @@ -70,6 +72,8 @@ export default class DatePickerIOS extends React.Component { /> ) } + + _isCurrentlyClosed = () => !this.previousProps || !this.previousProps.open } const styles = StyleSheet.create({