Skip to content Skip to sidebar Skip to footer

Redux Reducer Failing To Remove Array Element

I'm having problems trying to get my reducer to work correctly in Redux. I'm new to Redux so I might be missing something simple, but I've played with it for a while and can't figu

Solution 1:

You're missing a +1...

return [
  ...state.slice(0, action.index),
  ...state.slice(action.index + 1) // <--- need to actually skip what you want to remove
]

Solution 2:

@Jack is correct. Another option would be to use Array.filter instead:

return state.filter( (item, index) => index !== action.index)

You might be interested in the new Structuring Reducers section of the Redux docs. In particular, the page on Immutable Update Patterns has some related examples.

Solution 3:

If you want to remove multiple items, then you could work through your array backwards

for (var i = this.props.items.length -1; i >= 0; --i) {
   if(this.props.items[i]["selected"]) {
     this.props.deleteSelectedItem(i);
   }
 }

Post a Comment for "Redux Reducer Failing To Remove Array Element"