POST 404 при добавлении товара
Есть форма добавления товара. Есть функция добавления - addDevice При отправке получаю 404. В чем может быть дело?
Код:
import React, {useContext, useEffect, useState} from 'react';
import Modal from "react-bootstrap/Modal";
import {Button, Dropdown, Form, Row, Col} from "react-bootstrap";
import {Context} from "../../index";
import {createDevice, fetchBrands, fetchDevices, fetchTypes} from "../../http/deviceAPI";
import {observer} from "mobx-react-lite";
const CreateDevice = observer(({show, onHide}) => {
const {device} = useContext(Context);
const [name, setName] = useState('')
const [price, setPrice] = useState(0)
const [file, setFile] = useState(null)
const [info, setInfo] = useState([]);
useEffect(() => {
fetchTypes().then(data => device.setTypes(data))
fetchBrands().then(data => device.setBrands(data))
}, [])
const addInfo = () => {
setInfo([...info, {title: '', description: '', number: Date.now()}])
}
const removeInfo = (number) => {
setInfo(info.filter(i => i.number !== number))
}
const changeInfo = (key, value, number) => {
setInfo(info.map(i => i.number === number ? {...i, [key]: value} : i))
}
const selectFile = e => {
console.log(e.target.files[0]);
setFile(e.target.files[0])
}
const addDevice = () => {
console.log(info);
const formData = new FormData()
formData.append('name', name)
formData.append('price', `${price}`)
formData.append('img', file)
formData.append('brandId', device.selectedBrand.id)
formData.append('typeId', device.selectedType.id)
formData.append('info', JSON.stringify(info))
createDevice(formData).then(data => onHide())
}
return (
<Modal
show={show}
onHide={onHide}
size="lg"
centered
className="dark-modal"
>
<Modal.Header closeButton>
<Modal.Title id="contained-modal-title-vcenter" className="title-modal">
Добавить устройство
</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form>
<Dropdown className="dropDown mb-2">
<Dropdown.Toggle>{device.selectedType.name || "Выберите тип"}</Dropdown.Toggle>
<Dropdown.Menu>
{device.types.map(type =>
<Dropdown.Item key={type.id} onClick={() => device.setSelectedType(type)}>{type.name}</Dropdown.Item>
)}
</Dropdown.Menu>
</Dropdown>
<Dropdown className="dropDown mb-2">
<Dropdown.Toggle>{device.selectedBrand.name || "Выберите бренд"}</Dropdown.Toggle>
<Dropdown.Menu>
{device.brands.map(brand =>
<Dropdown.Item key={brand.id} onClick={() => device.setSelectedBrand(brand)}>{brand.name}</Dropdown.Item>
)}
</Dropdown.Menu>
</Dropdown>
<Form.Control
placeholder="Введите название устройства"
className="mb-2 form-input"
value={name}
onChange={e => setName(e.target.value)}
></Form.Control>
<Form.Control
placeholder="Введите стоимость устройства"
className="mb-2 form-input"
type="number"
value={price}
onChange={e => setPrice(Number(e.target.value))}
></Form.Control>
<Form.Control className="mb-2" type="file" onChange={selectFile}></Form.Control>
<hr/>
<Button variant="outline-light button-add" onClick={addInfo}>Добавить свойство +</Button>
{info.map(i =>
<Row className="mt-4" key={i.number}>
<Col md={4}>
<Form.Control
value={i.title}
onChange={(e) => changeInfo('title', e.target.value, i.number)}
placeholder="Введите название свойства"
/>
</Col>
<Col md={4}>
<Form.Control
value={i.description}
onChange={(e) => changeInfo('description', e.target.value, i.number)}
placeholder="Введите описание свойства"
/>
</Col>
<Col md={4}>
<Button
onClick={() => removeInfo(i.number)}
variant={"outline-danger"}
>
Удалить
</Button>
</Col>
</Row>
)}
</Form>
</Modal.Body>
<Modal.Footer>
<Button variant="outline-danger" onClick={onHide}>Закрыть</Button>
<Button variant="outline-success" onClick={addDevice}>Добавить</Button>
</Modal.Footer>
</Modal>
);
});
export default CreateDevice;
