x
2 سال پیش توسط x مطرح شد
1 پاسخ

مشکل در آپدیت کتگوری ها در فرانت اند

سلام به همگی خسته نباشید
من به یه مشکلی خوردم ممنون میشم اگه بتونید مشکلمو حل کنید

من مجموعه ای از کتگوری ها رو دارم که میتونم به لیستم اضافه و حذفش کنم الان میخوام قابلیت ویرایش رو بهش اضافه کنم تقریبا کارای اصلیش رو انجام دادم ولی زمانی که رو فرانت اند تست میزنم به اروری میخورم

کد آپدیت کتگوری ها در کنترلر بک اند

exports.update = (req, res) => {
    const category = req.category;
    category.name = req.body.name;
    category.save((err, data) => {
        if (err) {
            return res.status(400).json({
                error: "Failed to update category"
            });
        }
        res.json(data);
    });
};

بک اند رو با Postman تست زدم و مشکلی نداره به درستی آپدیت میکنه

............................................
کد Api آپدیت در فرانت اند

export const updateCategory = (categoryId, userId, token, category) => {
    return fetch(`${API}/category/${categoryId}/${userId}`, {
        method: "PUT",
        headers: {
            Accept: "application/json",
            Authorization: `Bearer ${token}`
        },
        body: category
    })
        .then(response => {
            return response.json();
        })
        .catch(err => console.log(err));
};

اینم صفحه آپدیت کتگوری

import React, { useState, useEffect } from "react";
import { isAuthenticated } from "../auth";
import { Link } from "react-router-dom";
import { getCategory, updateCategory } from "./apiAdmin";

const updateCategory = ({ match }) => {
    const [name, setName] = useState("");
    const [error, setError] = useState(false);
    const [success, setSuccess] = useState(false);
    const { user, token } = isAuthenticated();

    const preload = categoryId => {
        getCategory(categoryId).then(data =>{
            if(data.error) {
                console.log(data.error);
            }else{
                setName(data.name)
            }
        });
    };

    useEffect(() => {
        preload(match.params.categoryId);
    }, []);

    const handleChange = event => {
        setError("");
        setName(event.target.value);
      };

      const onSubmit = (event, value) => {
        event.preventDefault();
        setError("");
        setSuccess(false);

          updateCategory(match.params.categoryId, user._id, token, { name: value }).then(
            (data) => {
              if (data.error) {
                setError(true);
              } else {
                setError("");
                setSuccess(true);
                setName("");
              }
            }
          );
        };

        const successMessage = () => {
            if (success) {
              return <h4 className="text-success">Category created successfully</h4>;
            }
          };

    const warningMessage = () =>{
        if(error){
            return <h4 className="text-danger">Failed to update</h4>
        }
    };

    const myCategoryForm = () => (
        <form
        className="mb-3"
        >
                  <div className="form-group">

                    <input
                    type="text"
                    className="form-control my-3"
                    onChange={handleChange}
                    value={name}
                    autoFocus
                    required
                    />
                    <div className="container mt-1">
                      <div className="row">
                      </div>
                    </div>
                  </div>
                  <div className="action_btn offset-lg-3">
                  <button  onClick={(e)=> onSubmit(e, name)} className="btn btn-success mt-3">Update</button>
                </div>
              </form>
    );

    return (
            <div className="row">
                <div
                 style={{
                    paddingTop: "40px",
                    paddingBottom: "40px",
                    width: "100%",
                    maxWidth: "900px",
                    margin: "0 auto",}}
                className="col-md-8 offset-md-2"
                >
                {successMessage()}
                {warningMessage()}
                {myCategoryForm ()}
                </div>
            </div>
    );
};

export default updateCategory;

زمانی که روی update کلیک میکنم کنسول همچین اروری میده

PUT http://localhost:8000/api/category/63937e0a8d829f1040d43b8b/637f403acc6ef006d4f2a048 400 (Bad Request)

{"error":"Failed to update category"}

خیلی ممنون از همگی


ثبت پرسش جدید
x
تخصص : هیچولوژیست
@SZaaaa1111 2 سال پیش آپدیت شد
0

👀............
لطفا اگه میشه کمک کنید مشکلمو حل کنم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام