最近、私は を学び始め、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
};
};