React setState 不会立即更新状态

时间:2021-03-11 08:54:55

标签: node.js reactjs

const [myError, setMyError] = useState();

我正在调用我的 AddMedicineFunction 函数来更新我的 SQL 数据库中的值,然后在后端,我正在检查插入的值是否为数字。如果该值不是数字,我想在屏幕上显示错误消息,但在第一次调用时消息为空,我最终调用了两次。

   async function AddMedicineFunction () {

        console.log("Brand: ", { Brandname });
        console.log("Manufacturer: ", { Manufacturer });
        console.log("Stock: ", { Stock });
        console.log("minStock: ", { minStock });
        console.log("Price: ", { Price });
        console.log("Date: ", { ExpDate });

        Axios.post('http://localhost:3001/add', {
            Brandname: Brandname,
            Manufacturer: Manufacturer,
            Stock: Stock,
            minStock: minStock,
            Category: Category,
            ChemicalName: ChemicalName,
            EmailID: EmailID,
            Price: Price,
            ExpDate: ExpDate
        }).then((response) => {
            if(response.data){
                setMyError(response.data);
            }
            console.log("Success!");
        }).then(()=>{confirmAlert(options);});
    };
<块引用>

Node.js 代码

app.post("/add", (req, res) => {
    // console.log(req.body);

    var addBrandname = req.body.Brandname;
    var addManufacturer = req.body.Manufacturer;
    var addStock = req.body.Stock;
    var addminStock = req.body.minStock;
    var addEmailID = resEmail;
    var addPrice = req.body.Price;
    var addExpDate = req.body.ExpDate;

    if(isNaN(addStock)){
        console.log("Oops");
        res.send("Are you sure those are numbers?");
    } else{
        db.query(FetchMedicineDBsql, [addBrandname, addManufacturer], (err, result) => {
            if (err) {
                console.log(err);
            } else {
                var string = JSON.stringify(result);
                var json = JSON.parse(string);
                // console.log(json)
    
                // console.log("First print of result",result)
                // console.log("First check if data exists in med db")
    
                if (result.length === 0) {
                    console.log("Does not exist in the Database!")
                }
    
                if (result.length > 0) {
                    // console.log("Value exists")
    
                    var idMedicineDatabase = json[0].idMedicineDatabase;
    
                    db.query(addSql, [idMedicineDatabase, addStock, addminStock, addEmailID, addPrice, addExpDate], (err, result) => {
                        if (err) {
                            console.log(err);
                        } else {
                            res.send("Values Inserted!")
                            // console.log("Values Inserted!")
                        }
                    });
                }
            }
    
        });
    }
});

0 个答案:

没有答案