Skip to content

Commit d221f91

Browse files
authored
Fix: Modal opens multiple times (#455)
1 parent 40d15bb commit d221f91

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/DatePickerAndroid.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ const defaultWidth = 310
1818
class DatePickerAndroid extends React.PureComponent {
1919
render() {
2020
const props = this.getProps()
21+
const isClosed = this._isCurrentlyClosed();
22+
23+
this.previousProps = props;
2124
if (props.modal) {
22-
if (props.open) {
25+
if (props.open && isClosed) {
2326
NativeModules.RNDatePicker.openPicker(
2427
props,
2528
this._onConfirm,
@@ -32,6 +35,8 @@ class DatePickerAndroid extends React.PureComponent {
3235
return <NativeDatePicker {...props} onChange={this._onChange} />
3336
}
3437

38+
_isCurrentlyClosed = () => !this.previousProps || !this.previousProps.open
39+
3540
getProps = () => ({
3641
...this.props,
3742
date: this._date(),

src/DatePickerIOS.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,11 @@ export default class DatePickerIOS extends React.Component {
4545

4646
render() {
4747
const props = this._toIosProps(this.props)
48+
const isClosed = this._isCurrentlyClosed();
4849

50+
this.previousProps = props;
4951
if (props.modal) {
50-
if (props.open) {
52+
if (props.open && isClosed) {
5153
NativeModules.RNDatePickerManager.openPicker(
5254
props,
5355
this._onConfirm,
@@ -70,6 +72,8 @@ export default class DatePickerIOS extends React.Component {
7072
/>
7173
)
7274
}
75+
76+
_isCurrentlyClosed = () => !this.previousProps || !this.previousProps.open
7377
}
7478

7579
const styles = StyleSheet.create({

0 commit comments

Comments
 (0)