Вадим, второй если закомитил свои изменения, то делает git pull origin develop и если есть конфликты, то разруливает их. Как разруливать это отдельная тема. Если он еще не закоммитил изменения, то сначала делает git stash, потом git pull origin develop в свою ветку, затем git stash apply и разруливает конфликты если есть.
0xD34F, я столкнулся на реальном проекте с ситуацией, когда у меня все приложение перерендеривалось просто из-за того, что у меня где-то на верхнем уровне в mapStateToProps использовался filter и map. Они возвращали новый массив каждый раз как где-то вызывался dispatch, даже если этот dispatch никак не касался того компонента. В вашем случае может произойти тоже самое, теоретически.
map перебирает весь массив, это довольно дорогостоящая операция при условии что массив очень большой или апдейты слишком частые. Лучше использовать findIndex или find и менять именно тот объект которые нужен.
Засуньте type в параметры тоже, как вы сделали с названием статьи. Тогда перерендера не должно быть думаю.
И покажите пожалуйста полностью вашу реализацию роутов, мне кажется у вас архитектурно есть изъяны в роутах.
Артём, Еще как вариант можно использовать cloneDeep из lodash вместо slice, тогда массив скопируется полностью, вместе с объектами внутри. Но cloneDeep работает медленно, насколько мне известно, используйте в крайних случаях или как быстрый фикс.
slice делает копию массива, а вы мутируете объекты в массиве, которые передаются по ссылке прямо из стейта. Советую использовать какую-нибудь библиотеку типа icepick или хотя бы immer, чтобы избежать случайной мутации стейта.
Артём, по поводу Redux советую обратить внимание на этот раздел в документации https://redux.js.org/introduction/three-principles
Это принципы на которых построен Redux. Если понять эти принципы, то станет понятен и Redux.