javascript - 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}
这是我的查看购物车详细信息,当用户将商品添加到购物车时,我会在其中显示购物车详细信息,有人可以帮忙吗
解决方案
您应该比较长度,您当前正在直接比较数组,因此它也会进入错误路径,因此请先更改它。
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,
};
}
}
推荐阅读
- unit-testing - 如何使用 FakeItEasy 伪造嵌套属性?
- autodesk-forge - 是否有任何解决方法可以直接从数据管理 api 使用 generatedMasterViews?
- python - 如何使用我的 jupyter 笔记本的 python 代码从网站下载 csv 文件
- python - 为什么我的函数在返回后没有终止?
- git - 无法使用 ssh 协议连接 github 存储库
- typescript - 为什么我收到错误:无法读取未定义的属性“0”?
- node.js - 如何使用服务器端渲染设置 react-helmet?
- node.js - 什么是“userIDentityID”?在 node-zendesk 中调用 API "verify(userID, userIDentityID, cb)" 时?
- javascript - 用对象属性替换字符串
- c# - 会话启用队列中 CompleteAsync 上的 InvalidOperationException