如何在Redux中调度函数?

如何在Redux中调度函数?,第1张

如何在Redux中调度函数

我的建议是不要在状态中存储冗余(派生的)信息。这意味着您不需要(也不应该!)将总数存储在状态中。这是一个问题的主要原因是,它给您的州提供了一个自相矛盾的机会……如果您州的

total
密钥不等于项目总数的总和,那么您将有一个大问题!

相反,您可以创建一个计算总数的函数,并在需要时简单地调用它。例如:

const calculateTotal = state => {  let total = state.cart.reduce((total, item) => {    return total + item.quantity * item.product.price   }, 0);  // Assuming you just have one coupon, you could maintain a boolean in state  if (state.hasCoupon) {    total -= 50;  }  return total;}

然后,在代码中需要获取总数的任何位置,都可以简单地使用此函数。在中包含这种功能并不罕见

mapStateToProps

const mapStateToProps = state => ({  total: calculateTotal(state);});

如果最终遇到很多派生状态,则使用诸如Reselect之类的选择器库可能会带来一些好处,该选择器库可以帮助您构建从其他选择器派生的选择器,并实现
备忘录 以提高性能。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5173615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存