'How to make redux function call on radio button click react native?

I am working on project of Food app. I have preference screen where user can click on any desired preference to add in order. This is working but I want to dispatch a action so the clicked data is stored inside of redux store. User can only select few from given like 2 or 3. This is the function i am using for only few item slection logic

{item.map((items, index) => (
              

<TouchableOpacity
                key={items.id}
                onPress={() => {
                  const id=preferenceData.indexOf(item)
                  //console.log("id=",id)
                 // console.log("itemsID",items.checked)
                  if (minimum_quatity[id] !== null) {
                    
                    //console.log(" 1st loop enter")
                    preferenceData[id].forEach((i) => {
                    const check=item.filter(items =>items.checked ? items : null)
              
                      if (i.id == items.id) {
                       // console.log("checked",check)
                       // console.log("condition",(check.length < minimum_quatity[id]))
                        if (check.length < minimum_quatity[id]) {
                          console.log("before" ,i.checked)
                          i.checked=!i.checked;
                          console.log("after", i.checked)
                          selectItem(i, i.checked, ranid,i.name)  
                      }
                        else {
                          console.log("falsed")
                          i.checked = false;
                          selectItem(i, i.checked, ranid,i.name)  
                        }
                        
                       }
                        setpreferenceData([...preferenceData])
                        });
                        
                        setcounter(counter[id] + 1);
                        console.log("itemsID",items.checked);
                  }
                  else {
                    preferenceData[id].forEach((i) => {
                      if (i.id === items.id) {
                        i.checked = !i.checked;
                        selectItem(i, i.checked, ranid,i.name)
                        console.log("null")
                      }
                      
                    });
                     setpreferenceData([...preferenceData]);
                  }
                }}
    >

This runs perfectly fine when runs first time but if i diselect a radio button and again selects it then it data is never sent in redux SelectItem action . This is action selectItem

const selectItem = (checkeditems, checkboxValue, id, name) => {
    dispatch({
      type: 'ADD_TO_CART',
      payload: {
        ...checkeditems,
        checkboxValue: checkboxValue,
        id: id,
        name: name,
      },
    });
  };

My reducer file is fine because i have used it and it works fine. I know that i should have used redux tool kit but just for now i am using it for learning purpose

switch (action.type) {
    case 'ADD_TO_CART': {
      let newState = { ...state };
      if (action.payload.checkboxValue) {
        console.log('ADD TO CART',action.payload);
        newState.selectedItems = {
          checkeditems: [
            ...newState.selectedItems.checkeditems,
            action.payload,
          ],
          items: [...newState.selectedItems.items],
          quantity:[...newState.selectedItems.quantity]
        };
        console.log('ADD TO CART return');
      } else {
        console.log('REMOVE FROM CART');
        newState.selectedItems = {
          checkeditems: [
            ...newState.selectedItems.checkeditems.filter(
              (item) => (item.name !== action.payload.name) 
            ),
          ],
          items: [...newState.selectedItems.items],
        };
      }
      console.log(newState, '👉');
      return newState;
    }

The ouput is attached .I pressed two radio buttons and the deselected them and output is fine .It adds to cart and remove from cart. but after it when there again selects any radio button it does nothing Output image



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source