При возникновении события handleDelete
переменная i
изменила свое значение на orders.length
, поэтому orders[i]
не определено при запуске onClick
.
Итак, вместо for-loop
, используйте Array # map для перебора ордеров и возврата массива InvoiceItem
элементов.Поскольку amount
является необязательным, нам необходимо отфильтровать заказы по сумме, прежде чем применять функцию .map
.
let { orders } = this.state;
let ordersRender = orders.filter(order => order.amount).map(({name, amount}, index) => {
return (
<InvoiceItem name={name} amount ={amount} key={index} handleDelete={() => this.deleteProduct(name)}/>
);
})
...
Надеюсь, это поможет!