react-native - DatePicker 在 iOS react-native 0.60.6 中的工作非常奇怪
问题描述
不知道这是什么时候发生的,因为它以前可以工作,但可能是自从我将 react-native 升级到 0.60.6 之后。到目前为止,我测试了 3 个库,并且它们都在发生这种情况。目前使用react-native-woodpicker。
尽管它在我站立的位置没有显示任何价值,但确实存在,您可以在向上/向下滑动时真正感受到振动,但大多数时候没有价值,您可以连续滑动 10 秒,然后所有值列表会突然出现。
它发生在我应用程序中的所有 DatePickers 中,并且仅在 iOS 中,Android 工作正常。所以 DatePickerIOS 似乎有问题。
一些代码:
<DatePicker
onDateChange={this.handleDatePicker}
date={new Date(this.state.user.dateOfBirth)}
title={i18n.t('dateOfBirth')}
placeholder={this.handleDatePickerPlaceholder()}
placeholderStyle={scopedStyles.datePickerText}
iosPickerMode="date"
androidPickerMode="spinner"
minDate={minDate}
maxDate={new Date()}
/>
handleDatePicker = data => {
var {user} = this.state;
var thisUser = user;
var date = this.getObjectFromDate(data);
thisUser.dateOfBirth = data;
this.setState({
user: thisUser,
dateObject: date
});
};
getObjectFromDate(date) {
return {
day: date.getDate(),
month: (date.getMonth()) + 1,
year: date.getFullYear()
}
};
handleDatePickerPlaceholder() {
const {dateObject} = this.state;
if (Object.keys(dateObject).length) {
return `${dateObject.day}/${dateObject.month}/${dateObject.year}`
} else {
return `DD/MM/YYYY`;
}
}
感谢您提供的任何帮助。
解决方案
如果有人遇到同样的问题,那是由于 iOS 13 的暗模式,感谢 github 上的这个人,我能够解决它。
解决它的方法是在 iOS 应用程序的 info.plist 文件中添加一个新的键/字符串值。
<key>UIUserInterfaceStyle</key>
<string>Light</string>
希望这对其他人有帮助。