v2.5.2
Giriş yap

React bakiye geçmişi

ubeydullah26
344 defa görüntülendi

Geliştirdiğim projenin muhasebe bölümünde hesaba gelen ve çıkan paraların
hareketlerini tutuğum bir tablo var. Bunu table'da sıkıntısız gösteriyorum.
İstediğim şey bu hareketlerin bakiyeye nasıl etki ettiğinide göstermek.

image

Tablomun şu şekilde olmasını istiyorum.

TutarBakiye
6006450
2505850
-9005600
65006500
<table className="table text-wrap">
  <thead>
    <tr>
      <th>Tarih</th>
      <th>Tip</th>
      <th>Firma</th>
      <th>Açıklama</th>
      <th>Tutar</th>
      <th>Bakiye</th>
    </tr>
  </thead>
  <tbody>
    {transactions.map((item) => {
      return (
        <tr key={item.id}>
          <td>{item.document_date}</td>
          <td>{item.document_type}</td>
          <td>{item.interlocutors_label}</td>
          <td>{item.description}</td>
          <td>
            {readableMoneyFormat(item.document_total)} {props.detail.currency}
          </td>
          <td></td>
        </tr>
      );
    })}
  </tbody>
</table>;

tayfunerbilen
796 gün önce

mantık şöyle olmalı, bakiyeyi tuttuğun bir değerin olduğunu düşünüyorum. örneğin şöyle bir şeyde tutulsun şimdilik;

const balance = 6000

loop'da index değerini de dahil edip eğer index değeri 0 değilse bir önceki elemanı index - 1 ile seçip onun değerini balance'dan çıkarmak olacak. yani;

<table className="table text-wrap">
  <thead>
    <tr>
      <th>Tarih</th>
      <th>Tip</th>
      <th>Firma</th>
      <th>Açıklama</th>
      <th>Tutar</th>
      <th>Bakiye</th>
    </tr>
  </thead>
  <tbody>
    {transactions.map((item, key) => {
      return (
        <tr key={item.id}>
          <td>{item.document_date}</td>
          <td>{item.document_type}</td>
          <td>{item.interlocutors_label}</td>
          <td>{item.description}</td>
          <td>
            {readableMoneyFormat(item.document_total)} {props.detail.currency}
          </td>
          <td>
              {readableMoneyFormat(key !== 0 ? balance - transactions[key - 1].document_total : balance)}
          </td>
        </tr>
      );
    })}
  </tbody>
</table>;

çalışan bir örnek: https://codesandbox.io/s/icy-tdd-l1mpdj?file=/src/App.js