Как добавить измененный текст вместо старого текста в Списке Дел? Нужно написать handleEditClick ()
const [input, setInput] = useState("");
const [data, setData] = useState([]);
const [num, setNum] = useState(1);
const [edit, setEdit] = useState({});
const [modal, setModal] = useState(false);
const handleChange = (e) => {
setInput(e.target.value);
};
const handleClick = () => {
setData([
…data,
{
id: num,
status: false,
title: input,
},
]);
setNum(num + 1);
};
const handleDelete = (id) => {
let a = data.filter((e) => e.id !== id);
setData(a);
};
const handleCheck = (id) => {
let a = data.find((e) => e.id === id);
a.status = !a.status;
setData([…data]);
};
const handleEdit = (id) => {
let a = data.find((e) => e.id === id);
setEdit(a);
setModal(!modal);
};
const handleEditChange = (e) => {
const { value } = e.target;
setEdit({ …edit, title: value, status: true })
};
// console.log(edit);
const handleEditClick = () => {
setData([data,
{
title: edit.title
}
],)
console.log(setData);
// console.log(edit.title);
};```
Ответы (1 шт):
Автор решения: Yuriy Sidorov
→ Ссылка
Надо передать в handleEditClick id изменяемого элемента:
const handleEditClick = (id) => {
setData(prev => (
prev.map(item => ({...item, title: item.id === id ? edit.title : item.title })
)
));
}