Вы создаете новый массив каждый раз, когда выполняется ваша функция рендеринга. Вы должны использовать useState
для invoiceRows
тоже так:
const [ uniqueID, setuniqueID ] = useState(1);
const [ invoiceRows, setInvoicesRows ] = useState([0]);
// function to ensure that every row is a unique number
function customNumberGenerator() {
setuniqueID(uniqueID + 1);
setInvoicesRows([...invoiceRows, uniqueID])
}
// array of amout of items on an invoice
const invoiceItems = [ { number: 1 } ];
console.log(invoiceRows);