如何使用Redux中间件执行条件逻辑?

时间:2018-12-19 19:07:37

标签: javascript reactjs

我了解如何使用redux中间件并将其附加到applyMiddleware,我在努力取消操作或根据某些情况调度不同的操作

我有一个商店应用。如果用户减少了一件物品的数量,并且我希望我的中间件与该物品进行交互(如果数量从1变为0,并且弹出一个模态,则说:“您确定要从购物篮中删除吗?”)然后如果他们单击“是”,则操作完成。如果他们单击否,操作将取消

const modalMiddleware = store => next => action => {
 console.log(action)
  if (action.type === 'DECREMENT_QUANTITY'){
   } else {
    next(action)
   }
}

这是我到目前为止所拥有的。如何取消if块中的操作?

更新的部分:

基本上,如果项目的数量为1,并且该人尝试单击触发-操作的DECREMENT_QUANTITY按钮,我想说:“您确定要从此项目中删除此项目吗?篮子?” (因为显然是1到0 ===删除了它)。然后如果他们单击“是”,我将继续执行该操作,否则,请取消该操作。

但到目前为止,我仍然这样做:

const modalMiddleware = store => next => action => {
  if ( action.updatedItem && action.type === 'DECREMENT_QUANTITY' ){
    if (action.updatedItem && action.type === 'DECREMENT_QUANTITY' && action.updatedItem.quantity === 1){
        console.log(store.getState().bag.products[0].quantity, 'quants')
      } else {
      next(action)
    }
  } else {
    next(action)
  }
}

它似乎仅在数量为2时执行此操作,即,当数量达到2并单击-时它仍保持为2,但我似乎无法在1:/

0 个答案:

没有答案