Ниже приведен код, в котором при предварительной загрузке все элементы связываются внутри текстового поля, и с помощью того же текстового поля я хочу обновить значение состояния в реакции. состояние элементов обновляется, но выдает ошибку, как только завершается выполнение метода handlechange. items.map не является функцией. Как я могу использовать функцию изменения дескриптора в текстовом поле для обновления состояния массива?
import React, { useState, useEffect } from "react";
import { Link } from "react-router-dom";
import {getItems} from "./helper/adminapicall";
const ManageItems = () => {
const [items, setItems] = useState([]);
const preload = () => {
getItems().then((data) => {
if (data.error) {
console.log(data.error);
} else {
setItems(data);
}
});
};
const handleChange = (index, name) => (event) => {
setItems({
...items[index].name,
error: false,
[name]: event.target.value,
});
console.log(items);
};
useEffect(() => {
preload();
}, []);
return (
<Base title="Welcome admin" description="Manage items here">
<h2 className="mb-4">All items:</h2>
<Link className="btn btn-info" to={`/admin/dashboard`}>
<span className="">Admin Home</span>
</Link>
<div className="row">
<div className="col-12">
<h2 className="text-center text-white my-3">Total 3
products</h2>
{items &&
items.map((item, index) => {
return (
<div className="row form-group" key={index}>
<div className="col-4">
<input
type="text"
className="form-control"
value={item.name}
onChange={handleChange(index, "name")}
/>
</div>
</div>
);
})}
</div>
</div>
</Base>
);``
};
export default ManageItems;