【问题标题】:Input field max value validation server response输入字段最大值验证服务器响应
【发布时间】:2021-06-21 19:57:12
【问题描述】:

我有一个在 MongoDB 集群中保存成绩的 React 函数。但是,它会保存任何值,但我只想保存 1 到 10 之间的值,如果值超出此区间,我想显示警报并且不将成绩保存在数据库中。

这是我的功能:

const saveGrade = async (id, value, idGrade) => {
try {
  setLoading(true);
  setSuccess(false);
  setError("");
  let resp = null;
  resp = await axios.post(`subjectGrade/create`, {
    subjectStudent: id,
    partial: semester,
    grade: value,
  });
  if (value <= 10 && value >= 1) {   \\here im adding the range i want
    if (resp.status === 200) {
      setSuccess(true);
      const ids = dataUserSubjects.reduce((ids, item) => {
        if (item.subject._id === subjectAssigned) ids.push(item._id);
        return ids;
      }, []);
      const getSubjectGrades = async () => {
        const gradesSubject = await axios.post(`/subjectGrade/all`, {
          ids,
        });
        setStudentsGrades(gradesSubject.data);
      };
      await getSubjectGrades();
    } else {
      setError(resp.data.msg);
    }
  } else {
    alert("NOT OK");  \\here i display an alert, but value is still saved in database

  }
} catch (err) {
  setError(err.message);
}
setLoading(false);
};

【问题讨论】:

    标签: javascript reactjs mongodb axios


    【解决方案1】:

    不清楚 axios.post(subjectGrade/create) 做了什么,但我认为你应该在 if 语句中嵌套这段代码:

        if (value <= 10 && value >= 1){
          let resp = null;
          resp = await axios.post(`subjectGrade/create`, {
            subjectStudent: id,
            partial: semester,
            grade: value,
          });
          if (resp.status === 200) {
          ...
    

    如果不是,请提供更多详细信息。

    【讨论】:

      猜你喜欢
      • 2015-07-18
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 2013-11-15
      • 1970-01-01
      • 2014-09-15
      相关资源
      最近更新 更多