【发布时间】:2020-05-30 15:27:14
【问题描述】:
我试图通过使用useState 分别输入分钟和秒来设置时间(mm:ss),并将它们与另一个结合以跟踪整体表单数据,但是我似乎无法得到要推送到表单数据中的组合字符串...
我想我可能以某种方式错误地设置了数据...
const Modal = ({show, handleClose, handleAdd, children}) => {
const today = new Date().toISOString().substr(0, 10);
let initialFormState = {
date: today,
distance: '5.23',
time: ''
};
let initialTimeState = {
mins: 0,
secs: 0
};
const [formData, setFormData] = useState(initialFormState);
const [timeData, setTimeData] = useState(initialTimeState);
const submitData = event => {
event.preventDefault();
console.log({timeData});
// Add correctly formatted time to main formData
const {mins, secs} = timeData;
const time = `${mins}:${secs}`;
setFormData({...formData, 'time': time});
console.log(formData); // Here I can see that the 'time' field is empty...
}
return (
...
);
};
export default Modal;
【问题讨论】:
-
可以简单地存储对新对象的引用并将其传递给
setFormData()并记录它 -
@charlietfl - 你能举个例子吗?
-
const newData ={...formData, 'time': time}; setFormData(newData); console.log(newData );
标签: javascript reactjs react-hooks use-state