我创建了一个查看购物车,在其中我显示总价和查看购物车按钮,当我添加项目时,它会使条件为true,并在每个屏幕中显示下面的购物车,但当我单击查看购物车时,它不会再次使其为false,我该如何做到这一点?有人能检查一下我的代码并告诉我吗。下面是我的代码
Viewcart.js
<View>
{this.props.show && this.props.items.length > 0 ? (
<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");
this.props.show;
}}
>
View Cart
</Text>
</View>
</View>
) : null}
</View>
const mapStateToProps = (state) => {
return {
show: state.clothes.show,
};
};
const mapDispatchToProps = (dispatch) => {
return {
showCart: () => dispatch(showCart()),
};
};
reducer.js
if (action.type === SHOW_CART) {
let addedItem = state.addedItems;
if (addedItem.length === 0) {
return {
...state,
show: state.showCart,
};
} else {
return {
...state,
show: action.showCart,
};
}
}
const initialstate = {
showCart: false
}
action.js
export const showCart = (id) => {
return {
type: SHOW_CART,
showCart: true,
id,
};
};
根据聊天,要求在退出屏幕时切换,因此最简单的方法是使用生命周期方法。
要隐藏,请使用组件DidMount
componentDidMount(){
this.props.showCartOff();
}
显示使用组件
componentWillUnmount(){
this.props.showCart();
}