我正在尝试使用Reactstrap表单将数据发送到数据库,并且除了日期值之外,其他所有东西都被正确发送。我输入的任何日期都保存为1970-01-01T00:00:00.000+00:00
MongoDB,我也不知道为什么。
当我通过Postman发送所有内容时,它保存了正确的值,但是我想从表单中提交它。
表单日期字段:
<Form onSubmit={this.onSubmit}>
<FormGroup>
<Label className="lead">Horário local da leitura</Label>
<Input type="text" name="hora_leitura" required />
onSubmit函数
onSubmit = (e) => {
e.preventDefault();
const {
hora_leitura, pressao_atm, temp_ar, temp_min, temp_max,
umid_rel, umid_min, rad_solar, chuva_ac_dia, inten_vento,
direc_vento,
} = this.state;
const newEntry = {
hora_leitura, pressao_atm, temp_ar, temp_min, temp_max,
umid_rel, umid_min, rad_solar, chuva_ac_dia, inten_vento,
direc_vento,
};
// Add entry via addEntry action
this.props.addEntry(newEntry);
};
onChange功能
onChange = (e) => {
this.setState({ [e.target.name]: e.target.value });
};
POST Entry API代码:
router.post("/", (req, res) => {
const {
hora_leitura, pressao_atm, temp_ar, temp_min, temp_max, umid_rel,
umid_min, rad_solar, chuva_ac_dia, inten_vento, direc_vento,
} = req.body;
Entry.findOne({ hora_leitura }).then((isMatch) => {
if (isMatch)
return res
.status(400)
.json({ msg: "Uma entrada com essa data já existe" });
else {
const newEntry = new Entry({
hora_leitura, pressao_atm, temp_ar, temp_min, temp_max, umid_rel,
umid_min,rad_solar, chuva_ac_dia, inten_vento, direc_vento,
});
newEntry.save().then((entry) => res.json(entry));
}
});
});
不知道为什么它没有发送正确的日期。如果可以的话请帮助并解释您的答案,这将是非常不错的。
编辑:
在我的EntryModal
上课状态下,我有这个
state = {
modal: false,
added: false,
hora_leitura: new Date(),
pressao_atm: 0,
temp_ar: 0,
temp_min: 0,
temp_max: 0,
umid_rel: 0,
umid_min: 0,
rad_solar: 0,
chuva_ac_dia: 0,
inten_vento: 0,
direc_vento: "",
msg: null,
};
我把一个console.log
正确的上述呼吁addEntry
的onSubmit()
,它显示hora_leitura
的形式发送的确切日期,而不是我插入日期。我不知道我的代码是否在读取正确的日期值onChange
。
经过一些测试,我注意到,要更改我在状态上设置的值,我必须onChange
像在窗体上的每个输入上一样调用元素,但不必在上调用<Input type="text" name="hora_leitura" required />
,因此无论我在此输入中输入什么值,没关系。
我只是将输入更改为此:
<Input
type="text"
name="hora_leitura"
placeholder="2020-06-12T09:00:00.000"
onChange={this.onChange} // this is what was missing
required
/>
而且效果很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句