Javascript 在减速器中使用Date.now()替换
文件说我应该通过在减缩器中使用新的日期等来避免状态突变。请帮我建议一下该怎么做 行动:Javascript 在减速器中使用Date.now()替换,javascript,reactjs,redux,Javascript,Reactjs,Redux,文件说我应该通过在减缩器中使用新的日期等来避免状态突变。请帮我建议一下该怎么做 行动: const RECEIVE_PRICES = 'RECEIVE_PRICES'; function receivePrices(prices) { return { type: RECEIVE_PRICES, receivedAt: Date.now(), prices, }; } 减速器: ... case RECEIVE_PRICES: { let {
const RECEIVE_PRICES = 'RECEIVE_PRICES';
function receivePrices(prices) {
return {
type: RECEIVE_PRICES,
receivedAt: Date.now(),
prices,
};
}
减速器:
...
case RECEIVE_PRICES: {
let { prices } = action;
prices = prices.map((p) => {
const baseQuote = p.symbol.split('/');
return { ...p, baseCurrency: baseQuote[0], quoteCurrency: baseQuote[1] };
});
prices.sort(
(a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime(),
);
return {
...state,
prices,
pricesLoading: false,
pricesError: null,
};
}
default:
return state;
}
在Redux中,所有副作用(不仅仅是api调用)都应该发生在动作创建者内部。您应该将此逻辑移动到action creator中,并让调用方传递必要的参数。将所有逻辑移动到中间件中是一个好主意。在这个特定的示例中,您可以从技术上将逻辑移动到动作创建者。