ReactJS/Firebase:如何设置时间戳字段为空/未定义?



我希望用户能够不选择日期。

<LocalizationProvider dateAdapter={AdapterDateFns}>
<MobileDatePicker
label={"Date From"}
inputFormat="dd/MM/yyyy"
disablePast={true}
value={datefrom}
minDate={new Date()}
onChange={(newValue) => {
setDateFrom(format(newValue, 'MM/dd/yyyy'));
if (dateto == '') {
setDateTo(format(newValue, 'MM/dd/yyyy'));
}
}}
renderInput={(params) => <TextField variant="outlined" {...params} helperText={null} fullWidth />}
/>

我认为这将工作:

<Button onClick={(newValue) => {setDateFrom(null);}}>CLEAR DATES</Button>

虽然它清除了日期,但它不允许我保存空白字段

如果您只想忽略这种情况下的未定义值,则可以有条件地展开对象。

这样应该可以工作。

await setDoc(docRef, {
mandatoryField: "value",
...(dateTo === "" ? {} : {timeStamp: dateTo}  )
})

如果你想忽略所有未定义的值供将来使用,你可以初始化firestore设置如下。

import { getFirestore, initializeFirestore } from 'firebase/firestore'; // Firebase v9+
// Must be called before getFirestore()
initializeFirestore(app, {
ignoreUndefinedProperties: true
});
const firestore = getFirestore(app);

最新更新