如何从@react-native-community/datetimepicker获取日期存入userInfo的dateOfBirth字段
问题原因
你选中日期后仅更新了单独声明的date状态,没有把选中的日期值同步更新到userInfo对象的dateOfBirth字段,因此该字段始终为空。
解决方案
修改DateTimePicker的onChange回调逻辑,在更新date状态的同时,把选中的日期存入userInfo即可,以下是两种可行修改方式:
方式1:修改现有的onChange函数
在原有逻辑基础上新增一行调用handleOnChangeText的代码,按需传入格式化后的日期或者原始Date对象/时间戳:
const onChange = (event, selectedValue) => { setShow(Platform.OS === 'ios'); if (mode == 'date') { const currentDate = selectedValue || new Date(); setDate(currentDate); // 新增代码:同步更新userInfo的dateOfBirth字段 handleOnChangeText(formatDate(currentDate), 'dateOfBirth'); } };
方式2:直接使用你注释的行,修正参数获取逻辑
DateTimePicker的onChange回调第一个参数是事件对象,第二个才是选中的日期值,你之前注释的写法参数拿错了,修正后可以直接用:
<DateTimePicker testID='dateTimePicker' value={date} mode={mode} is24Hour={true} display='default' // 修正参数,第二个值才是选中的日期 onChange={(event, val)=>handleOnChangeText(formatDate(val),'dateOfBirth')} />
修改完成后选中日期时,dateOfBirth字段就会正常更新了。
内容的提问来源于stack exchange,提问作者Rahul Thakur
相关产品推荐
相关产品推荐

