У меня есть эта форма ReactJs с использованием Laravel React ui scaffolding . Как я могу загрузить изображение с другими данными в моей форме?
AddProduct. js
...
const AddProduct = () => {
*//state*
const initialProductState = {
id: null,
image: "",
category_id: "1",
name: "",
};
const [product,setProduct] = useState(initialProductState);
...
*//handle controlled input change*
const handleInputChange = event => {
const {name,value} = event.target;
setProduct({...product, [name]:value });
}
*// handle file input change*
const handleFileChange = (event) => {
const file = event.target.files[0];
console.log(file);
}
*//Form Submit*
const onSubmit = (event) => {
event.preventDefault();
let data = {
category_id: product.category_id,
image: product.image,
name: product.name
};
console.log(data);
axios.post(`/api/products`,data)
.then(response => {
setProduct({...})
})
.catch(e=>{
console.log(e)
});
... *proceed to return*
AddForm. js
return (
<form onSubmit={onSubmit}>
<select id="category_id" name="category_id" onChange={...}>...</select>
<input type="file" onChange={handleFileChange} value={product.image}/>
<input type="text" value={...} onChange={...}/>
<button type="submit">submit</button>
</form>
)
Как видно из кода, я изначально объявляю состояние, включающее все входы. Теперь вопросы.
- Как я могу указать имя изображения во входном значении файла?
- Как я могу включить изображение вместе с другими входными данными формы? - Я видел несколько руководств о том, как загрузить изображение, но они фокусируются только на вводе файла.
- Могу ли я столкнуться с каким-либо преобразованием?
- Каков правильный способ объявление onChange для ввода файла?