React - Проблема с состоянием обновления (useState) в функции onChange
У меня проблема с обновлением состояния функции handleItemChange для формы. У тебя есть решение? большое спасибо...
const [items, setItems] = useState([]);
const addPrestation = () => {
const id = Date.now().toString();
const prestation = {...items};
prestation[id] = {
customer:customer,
id: id,
delivery: "",
quantity: "",
unit: "",
unitPrice: "",
tva: "",
htAmount: "",
ttcAmount: ""
}
setItems([...items, {prestation:prestation}])
}
const handleItemChange = (event, prestation, field ) => {
const value = event.target.value;
const clonePresta = {...prestation};
clonePresta[field] = value;
const clonePrestations = {...items};
clonePrestations[clonePresta.id] = clonePresta;
setItems(???)
}
2 ответа
Решение
const handlePrestaChange = ({currentTarget}) => {
const {name, value, id} = currentTarget;
const clonePresta = {...prestation}
clonePresta[name] = value;
setPrestation({...prestation, [name]: value })
const tabItems = [...items];
tabItems[id] = clonePresta;
setItems([...tabItems])
}
Я думаю, вам стоит сделать что-то вроде этого:
const handleItemChange = (event, prestation, field ) => {
const value = event.target.value;
const clonePresta = {...prestation};
clonePresta[field] = value;
const clonePrestations = {...items};
clonePrestations[clonePresta.id] = clonePresta;
setItems([...items, {presentation: clonePresta})
}