【问题标题】:transferproduct.js:35 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'preventDefault') ReactJStransferproduct.js:35 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'preventDefault') ReactJS
【发布时间】:2022-06-13 20:04:46
【问题描述】:

当我单击 transfwer 按钮时,我收到 typeError。 这是我的代码 transferproduct.js

import React from 'react';
import { useState, useEffect } from "react";
import axios from "axios";
// import { warning } from 'react-router/lib/router';

const props = JSON.parse(localStorage.getItem('products'));

const TransferProduct = () => {
  const [product, setProduct] = useState([]);
  
    const [data, setData] = useState({
        id: "",
        oname: "",
        area: ""
      });
    
      const handleChange =  (e) => {
        e.preventDefault();

        const value = e.target.value;
        setData({
          ...data,
          [e.target.name]: value
        });
      };
    
      const handleSubmit =  async (e) => {
        
        const userData = {
          
            id: data.id,
            newOwner: data.oname,
            newArea: data.area
        };
        e.preventDefault();
        const { datas }  = await axios.get(
          "http://localhost:8080/api/QueryProductById/"+data.id
        );
    
        let parseData = JSON.parse(datas);
    
        setProduct(parseData);
          
        console.log("hi");

        if(product.cost<props.budget){
          console.log("error");

        }
        else{
        axios
          .put("http://localhost:8080/api/TransferProduct/"+data.id, userData)
          .then((response) => {
            console.log(response);
          })
          .catch((error) => {
            if (error.response) {
              console.log(error.response);
              console.log("server responded");
            } else if (error.request) {
              console.log("network error");
            } else {
              console.log(error);
            }
          });
        }
      };


return (
    <div>
             <form >
        <label htmlFor="header-search">
            <span className="visually-hidden">From</span>
        </label>
        <input type="text" name="id" value={data.id}  placeholder="ID" onChange={handleChange}
/>
          <label htmlFor="header-search">
            <span className="visually-hidden">TO</span>
        </label>
        <input type="text" name="oname" value={data.oname}  placeholder="Enter New Owner"  onChange={handleChange}
 />

<label htmlFor="header-search">
            <span className="visually-hidden">TO</span>
        </label>
        <input type="text" name="area" value={data.area}  placeholder="Enter new Location"  onChange={handleChange}
 />

        <button type="submit" onClick={handleSubmit()}>Transfer</button>
    </form>

    </div>
);
};

export default TransferProduct;

这是我遇到的错误的屏幕截图。 transferproduct.js:35 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'preventDefault') 我在 stackoverflow 上做了所有可用的解决方案,但我的错误仍然没有解决。

screnshot of error

【问题讨论】:

  • 你没有将事件传递给handleSubmit

标签: javascript reactjs


猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 2022-10-09
  • 2022-07-21
  • 2022-07-22
  • 2022-10-13
  • 2022-01-07
  • 2022-10-18
  • 2021-11-10
相关资源
最近更新 更多