@MaksZhukov
programer

Почему reselect не работает?

selector
import { createSelector } from 'reselect';

const getGames = state => state.game.games;

export const gamesSelector = createSelector(getGames, games => games);


container
import { gamesSelector } from '../../../selectors';


const mapStateToProps = state => ({
  games: gamesSelector(state),
});

При изменении данных объекта одной игры перерендериваются все компоненты games.
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
А чего вы ожидали? Вы создаете бесполезный селектор, который ничего не выбирает, а просто пропускает через себя объект games. Затем, этот объект вы целиком передаете в connect. Естественно, при его изменении ваш компонент перерисует по цепочке все дочерние компоненты.
Делайте в компонентах Game проверку shouldComponentUpdate и сравнивайте входящие объекты:
shouldComponentUpdate(nextProps) {
  return nextProps.game !== this.props.game;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы