Remove and Add items from array in nested javascript object
For the remove function, how about using a map and filter instead:

removeItem (groupId, itemId){
    let {groups} = this.state;
    groups = groups.map((group) =&gt; {
        if(group.id === groupId){ 
           group.item = group.item.filter(item =&gt; item.id !== itemId);
        }
        return group;
    });
    this.setState({groups});
}