请注意
请注意,此库目前公开了 iOS 上的 UIDatePicker 和 Android 上的 DatePickerDialog + TimePickerDialog 以及 Windows 上的 CalendarDatePicker +TimePicker 的功能。
这些本机类仅提供有限的配置,而作为开发人员,您可能需要许多可能的选项。因此,如果支持的原生视图不支持您的要求,该库将无法实现您的要求。当您打开功能请求的问题时,请记录是否(或如何)可以使用上述本机视图实现该功能。如果这些视图不支持您的需求,则此类功能请求将被视为不可操作而关闭。
如react-native-datetimepicker文档中提供的那样。
您正在使用的date
道具就是其中之一。对于 iOS,它公开了一个UIDatePicker字段,即
日期选择器将显示的初始日期。默认为当前日期,但您可以设置自定义值。此属性等效于以编程方式设置日期属性。
但是,如react-native-datetimepicker
文档中所述,它的使用是有限的。我们需要使用的正确道具value
是
定义组件中使用的日期或时间值。
这是必填栏。我们不能取消它。总会有一些默认值需要在初始时明确设置。
但是,您想要实现的目标可以以不同的方式完成。您需要在表单状态下自己处理表单值。因此,
const [date, setDate] = useState()
表单中的状态date
最初是未定义的。你的value
道具DateTimePicker
不是。
DateTimePicker
得到onConfirmMethod
一个. 如果被触发,请将您的date
状态设置为value
传递给的道具onConfirmMethod
,如下所示
const onConfirm = (selectedDate) => {
setDate(selectedDate)
}
<DateTimePicker
isVisible={isDatePickerVisible}
mode={mode}
onConfirm={onConfirm}
onCancel={hideDatePicker}
value={date}
onBlur={onBlur}
/>
}
通常您希望用户允许之后删除该字段。您需要自己实现此功能,因为value
无法取消设置。如果所选date
内容在某种 InputField 中可视化,则可以轻松完成。
然后,您的表单数据与您的DateTimePicker
价值道具分离。恐怕没有其他办法,至少有这个库。