首页 > 解决方案 > React Native,redux 功能在更新后不会恢复到原始状态

问题描述

我创建了一个功能来查看每个屏幕下方的购物车详细信息,当用户将商品添加到购物车以及用户删除功能时,购物车详细信息将再次隐藏,但是当我从购物车中删除商品时,购物车详细信息没有隐藏,有人可以告诉我出了什么问题,下面是我的代码

减速器

 if (action.type === SHOW_CART) {
    let addedItem = state.addedItems;
    if (addedItem === 0) {
      console.log(addedItem);
      return {
        ...state,
        show: state.showCart,
      };
    } 
  } 


const initialstate = {
  showChart: false,
  addedItems: [],
}

这是我正在执行该功能的 redux 代码, addItems 是我的购物车,它是空白数组

行动

export const showCart = (id) => {
  return {
    type: SHOW_CART,
    showCart: true,
    id,
  };
};

这是我的行动

查看购物车

  {this.props.show ? (
          <View style={styles.total}>
            <Text style={styles.totaltext}>Total:</Text>
            <Text style={styles.priceTotal}>{this.props.total}</Text>
            <View style={styles.onPress}>
              <Text
                style={styles.pressText}
                onPress={() => RootNavigation.navigate("Cart")}
              >
                View Cart
              </Text>
            </View>
          </View>
        ) : null}

这是我的查看购物车详细信息,当用户将商品添加到购物车时,我会在其中显示购物车详细信息,有人可以帮忙吗

标签: javascriptreactjsreact-nativereact-redux

解决方案


您应该比较长度,您当前正在直接比较数组,因此它也会进入错误路径,因此请先更改它。

if (action.type === SHOW_CART) {
    let addedItem = state.addedItems;
    if (addedItem.length === 0) {
      console.log(addedItem);
      return {
        ...state,
        show: state.showCart,
      };
    } else {
      return {
        ...state,
        show: action.showCart,
      };
    }
  }

推荐阅读