在反应本机弹性复选框中从购物车模式中删除购物车减速器中的项目时,复选框不会更新已选中或未选中

问题描述 投票:0回答:2

当我在菜单页面上时,用户可以检查菜单项以将其添加到购物车,然后将所选项目添加到购物车。如果 cart.selecteditems.length > 0,用户可以打开购物车模式,还可以增加数量或减少或从模式中删除商品。但是,当用户删除该项目并关闭模式时,被删除的菜单项的复选框仍将被选中。我需要再次获取菜单,以便页面可以重新呈现,并且只应检查添加的项目。

复选框代码

const cart = useSelector(state => state.cart)

const checkedAlreadyAdded = (id) => {
   let alreadyExist = cart.selectedItems.findIndex((obj)=> obj.itemId == id)       i 
   if(alreadyExist < 0){
      return false
   }else{
      return true
   }
}


<BouncyCheckbox
   onPress={()=>addItemToCart(item)}
   isChecked={checkedAlreadyAdded(item.id)}                                                  
 />

因此,当购物车减速器在 selectedItems 中进行更改时,checkox 不会更新其检查值。

react-native checkbox
2个回答
0
投票

请小心定位对象的 id。在检查您的 id 的 findIndex 函数中,您可以使用 obj.itemId 来定位它,同时在组件级别发送 item.id 参数。


0
投票

对我来说,disableBuiltInState 有效:

<BouncyCheckbox 
onPress={()=>addItemToCart(item)} 
isChecked={checkedAlreadyAdded(item.id)}
disableBuiltInState
/>
© www.soinside.com 2019 - 2024. All rights reserved.