ReactJS:表单将错误的日期值发送到数据库

莫尔吉

我正在尝试使用Reactstrap表单将数据发送到数据库,并且除了日期值之外,其他所有东西都被正确发送。我输入的任何日期都保存为1970-01-01T00:00:00.000+00:00MongoDB,我也不知道为什么。

当我通过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正确的上述呼吁addEntryonSubmit(),它显示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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据从表单发送到数据库

来自分类Dev

Bootstrap表单将数据错误发送到MongoDB数据库

来自分类Dev

如何将表单值发送到节点/表达式以搜索数据库?

来自分类Dev

如何将表单输入值发送到在本地创建的Empty数据库?

来自分类Dev

如何将出生日期从 html 表单发送到数据库

来自分类Dev

如何将HTML表单数据发送到数据库?

来自分类Dev

无法将数据从表单发送到Firestore数据库

来自分类Dev

无法将数据从用户表单发送到 PHP 中的数据库

来自分类Dev

将输入的信息发送到数据库中的MySQL表的HTML表单

来自分类Dev

如何使用php将表单内容发送到数据库

来自分类Dev

PHP表单将除图像外的所有内容发送到数据库

来自分类Dev

如何将正确的日期格式从 dateTimePicker 发送到 MySQL 数据库?

来自分类Dev

将XML数据发送到MySQL数据库

来自分类Dev

将textarea数据发送到数据库的麻烦

来自分类Dev

将html5数据列表的隐藏值发送到数据库

来自分类Dev

将JSON发送到数据库时出错

来自分类Dev

将下拉列表的信息发送到数据库

来自分类Dev

AngularJS在离开输入字段时将值发送到数据库

来自分类Dev

如何将多个复选框值发送到laravel中的数据库?

来自分类Dev

Perl CGI将空值发送到mySQL数据库?

来自分类Dev

选中多个复选框时,将值发送到数据库

来自分类Dev

EF Core:将重复值发送到数据库

来自分类Dev

将数组值发送到mysql数据库表

来自分类Dev

AngularJS在离开输入字段时将值发送到数据库

来自分类Dev

Perl CGI将空值发送到mySQL数据库?

来自分类Dev

选中多个复选框时,将值发送到数据库

来自分类Dev

使用 Python 将值发送到数据库(SenseHAT 项目)

来自分类Dev

无需切换页面,通过php将html表单数据发送到数据库

来自分类Dev

存储表单值而无需将其发送到MySQL数据库进行支付网关处理的最佳方法

Related 相关文章

  1. 1

    将数据从表单发送到数据库

  2. 2

    Bootstrap表单将数据错误发送到MongoDB数据库

  3. 3

    如何将表单值发送到节点/表达式以搜索数据库?

  4. 4

    如何将表单输入值发送到在本地创建的Empty数据库?

  5. 5

    如何将出生日期从 html 表单发送到数据库

  6. 6

    如何将HTML表单数据发送到数据库?

  7. 7

    无法将数据从表单发送到Firestore数据库

  8. 8

    无法将数据从用户表单发送到 PHP 中的数据库

  9. 9

    将输入的信息发送到数据库中的MySQL表的HTML表单

  10. 10

    如何使用php将表单内容发送到数据库

  11. 11

    PHP表单将除图像外的所有内容发送到数据库

  12. 12

    如何将正确的日期格式从 dateTimePicker 发送到 MySQL 数据库?

  13. 13

    将XML数据发送到MySQL数据库

  14. 14

    将textarea数据发送到数据库的麻烦

  15. 15

    将html5数据列表的隐藏值发送到数据库

  16. 16

    将JSON发送到数据库时出错

  17. 17

    将下拉列表的信息发送到数据库

  18. 18

    AngularJS在离开输入字段时将值发送到数据库

  19. 19

    如何将多个复选框值发送到laravel中的数据库?

  20. 20

    Perl CGI将空值发送到mySQL数据库?

  21. 21

    选中多个复选框时,将值发送到数据库

  22. 22

    EF Core:将重复值发送到数据库

  23. 23

    将数组值发送到mysql数据库表

  24. 24

    AngularJS在离开输入字段时将值发送到数据库

  25. 25

    Perl CGI将空值发送到mySQL数据库?

  26. 26

    选中多个复选框时,将值发送到数据库

  27. 27

    使用 Python 将值发送到数据库(SenseHAT 项目)

  28. 28

    无需切换页面,通过php将html表单数据发送到数据库

  29. 29

    存储表单值而无需将其发送到MySQL数据库进行支付网关处理的最佳方法

热门标签

归档