Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sticky: fix max update depth error #3293

Merged
merged 3 commits into from
Oct 24, 2023

Conversation

HelenaIsh
Copy link
Contributor

@HelenaIsh HelenaIsh commented Oct 19, 2023

Проблема

песочница

При открытии SidePage первого уровня скроллинг в низ не приводит к ошибке, но при открытии вложенного SidePage при проскролировании в самый низ сайдпейджа получаем ошибку бесконечного обновления
Проблема возникла после коммита, когда мы вынесли крестик в отдельный компонент.

Решение

Проблема оказалась в компоненте Sticky: раньше в SidePage мы рендерили

 <Sticky side="top" offset={stickyOffset}>
            {this.closeIcon}
</Sticky>

что не вызывало перерендера Sticky:

 public componentDidUpdate(prevProps: StickyProps, prevState: StickyState) {
    if (!shallowEqual(prevProps, this.props) ...

Но после того, как мы заменили на

<Sticky side="top" offset={stickyOffset}>
            <SidePageCloseButton />
</Sticky>

Sticky стал обновляться гораздо чаще.

Решила кэшировать <SidePageCloseButton /> как советуется здесь

Ссылки

fix IF-1494

Чек-лист перед запросом ревью

  1. Добавлены тесты на все изменения
    ⬜ unit-тесты для логики
    ⬜ скриншоты для верстки и кросс-браузерности
    ✅ нерелевантно

  2. Добавлена (обновлена) документация
    ⬜ styleguidist для пропов и примеров использования компонентов
    ⬜ jsdoc для утилит и хелперов
    ⬜ комментарии для неочевидных мест в коде
    ⬜ прочие инструкции (README.md, contributing.md и др.)
    ✅ нерелевантно

  3. Изменения корректно типизированы
    ⬜ без использования any (см. PR 2856)
    ✅ нерелевантно

  4. Прочее
    ✅ все тесты и линтеры на CI проходят
    ✅ в коде нет лишних изменений
    ✅ заголовок PR кратко и доступно отражает суть изменений (он попадет в changelog)

@HelenaIsh HelenaIsh marked this pull request as ready for review October 19, 2023 05:12
@HelenaIsh HelenaIsh requested a review from zhzz October 20, 2023 03:34
@HelenaIsh HelenaIsh marked this pull request as draft October 24, 2023 08:49
@HelenaIsh HelenaIsh marked this pull request as ready for review October 24, 2023 09:32
@HelenaIsh HelenaIsh requested a review from zhzz October 24, 2023 09:32
@zhzz zhzz merged commit 950988f into master Oct 24, 2023
@zhzz zhzz deleted the if-1494-side-page-max-update-depth-error branch October 24, 2023 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants