this.checkIFvat(obj.vatValue)
вызывает эту ошибку, так как вы устанавливаете состояние при рендеринге. Создайте функцию для расчета НДС, где вы установите invoiceDetails
.
calculateTotalVat = (items) => {
if (!items) {
return 0;
}
let totalVat = 0;
items.forEach(obj => {
totalVat += obj.vatValue;
});
return totalVat;
}
this.setState({
invoiceDetails: data,
totalVat: this.calculateTotalVat(data),
});
Затем на карте проверьте, отображается ли obj.vatValue > 0
*
или пустая строка
{this.state.invoiceDetails.map(obj => {
return (
<tr>
<td>
{obj.quantity * obj.salePrice} {obj.vatValue > 0 ? '*' : ''})}
</td>
</tr>
);
})}