javascript - 为什么时间戳不保存到 React 状态对象?
问题描述
我正在尝试将日期保存为 Firebase 中的时间戳,但由于某种原因,时间戳不会从表单 onChange 处理程序保存到状态...
const [event, setEvent] = useState({});
function handleDate(e) {
e.persist();
let d = e.target.value;
console.log('date1', d); //date1 2020-10-13
let dd = new Date(d);
console.log('date2', dd); // Tue Oct 13 2020 02:00:00 GMT+0200 (Central European Summer Time)
let ddd = dd.getTime() / 1000;
console.log('timestamp ', ddd); // timestamp 1602547200
setEvent({...event, date_ts: ddd});
console.log('event timestamp', event.date_ts); //null
setEvent({...event, date: e.target.value});
console.log('event date', event.date); // empty string
}
最后 event.date 属性保存正确,但 event.date_ts 为空。为什么??其次......为什么来自处理程序的“事件日期”控制台日志是一个空字符串,但日期被保存?谢谢
编辑:
现在是非常基本的 Firebase 保存:
const saveNewEvent = (e) => {
e.preventDefault()
console.log("save event", event) //HERE the time_ts is "null"
firebase.firestore().collection(event.category).add({
event
})
setEvent({ ...defalut_event })
}
...所以看起来这是一些 React 怪异,与 Firebase 无关...(或者可能是我的无能,而是;)
解决方案
推荐阅读
- r - 在R中重新排序phylo树的叶子
- .net - GoogleAnalyticsTracker——实现一个自定义的 IAnalyticsSession
- python - 检查列表是否包含任何列表
- delphi - 在窗口周围绘制框架时出现问题
- sql - 使用 C# 在 SQL Server 和 EFCore 中货币或货币数据类型的最佳配对是什么?
- reactjs - 如何在 ReactJs 中获取 Material UI Stepper 组件数据
- typescript - 定义一个类型,其键和值是给定过滤器的键及其类型
- java - spring webflux 应用程序的 workerThread 池大小应该是多少?
- python - 获得 spaCy 的次优(或 n-best)解析
- angular - Restangular customPost:属性路径构造函数需要一个字符串或PropertyPath的一个实例,得到整数