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})
}
Другие вопросы по тегам