Подключаю компонент к стору так:
const mapStateToProps = (store, ownProps) => ({
userIsFollowable: store.users[ownProps.userId].isFollowable,
groupIsFollowable: store.groups[ownProps.groupId].isFollowable
});
export default connect(mapStateToProps)(FollowLinks);
В документации redux-connect написано что если свойства не меняются, то ререндера не будет, в функции connect есть проверка, которая производит неглубокое сравнение объектов. И соответственно React PureComponent использовать вместе сconnect нет смысла. Однако у меня в проекте с React Native это не работает. Вот:
Здесь видно что в компоненте, отображающем сущность с id 43223470435 поля userIsFollowable (false) и groupIsFollowable (true) не меняются, так же не меняется userId и groupId. Однако с каждым запросом на сервер, когда стор пополняется вновь загруженными данными (другими сущностями), компонент перерисовывается.
Пробовал кэшировать в reselect - не работает.
Однако если переделать компонент с функции на React PureComponent, то все работает правильно, перерисовки не происходит при добавлении элементов в стор.
В чем может быть дело? Есть какие-то идеи?
П.С. Прошу обратить внимание на то, что PureComponent предотвращает ререндер, то есть вариант, что я подписал компонент на "лишние" поля, которые меняются незаметно для меня, исключен.