Если они скролятся по одному, почему нельзя рендерить только текущий, ну пусть два соседних еще, чтоб было на что скролить вперед/назад? зачем рендерить ваще все, что были загружены?
1) запрос на бэк с айдишником удаляемого элемента
2) на бэке удаляешь элемент из бд по айди
3) отправляешь ответ с результатом операции, если удаление прошло успешно - удаляешь элемент из списка на фронте, если нет - показываешь ошибку
В mapStateToProps маппишь весь стейт в todo, а Стейт с тудухами лежит в state.addTodo, соответствуя тому, какое имя поля было в объекте, который ты передал в combineReducers
Для setCart нужно использовать useEffect с зависимостью от item, так как добавление в корзину это по сути сайд эффект установки нового item, в данном случае