1

最近、私は を学び始め、reselectそれを自分のプロジェクトに使用しようとしています。

しかし、派生データを計算するコードをどこに置こうか迷っています。

以下は私のコードスニペットです。formatDate calcDayLeftFromNow setDeriveDataロジックを入れてreducerも問題ないと思います。

私は自分で導出データ計算を行うreducerことも問題ありません。

私がこれを行うと、 を使用する理由がないように思えますreselect

function formatDate(millisecond) {
  let d = new Date(millisecond);
  let dateArr = [d.getFullYear(), d.getMonth() + 1, d.getDate()];
  let date = dateArr.join('.');
  return date;
}

function calcDayLeftFromNow(endTimeNum) {
  const timeDiff = endTimeNum - new Date().getTime();
  const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
  return daysDiff;
}

function setDeriveData(coupons) {
  return Object.values(coupons).map((coupon, index) => {
    coupon.startDate = formatDate(coupon.startTimeNum);
    coupon.endDate = formatDate(coupon.endTimeNum);
    coupon.dayLeft = calcDayLeftFromNow(coupon.endTimeNum);
    return coupon;
  });
}

const mapStateToProps = state => {
  const { coupons, current_tab, result, page } = state.yao_coupon;
  const newCoupons = setDeriveData(coupons);

  return {
    coupons: newCoupons,
    current_tab,
    result,
    page
  };
};
4

1 に答える 1