Насколько React ErrorBoundary действительно является границей?
Насколько я понимаю границы ошибок React, это компоненты, которые реализуют componentDidCatch
. Ошибка в дереве компонентов всплывает до первой границы ошибки, где ее можно обработать (например, путем отображения сообщения об ошибке).
Однако сейчас у меня такая ситуация:
<OuterBoundary>
<...>
<InnerBoundary>
<...>
<FaultyComponent />
</...>
</InnerBoundary>
</...>
</OuterBoundary>
Обе OuterBoundary
а также InnerBoundary
являются границами ошибок. Когда ошибка происходит вFaultyComponent
, эта ошибка улавливается InnerBoundary
, как и ожидалось. Там он регистрируется на сервере, но мы не отображаем никаких сообщений об ошибках. Впоследствии ошибка, кажется, снова всплывает, а затем снова обнаруживается вOuterBoundary
.
Документация React, похоже, указывает, что одна граница ошибки действительно является границей. Ошибка, обнаруженнаяcomponentDidCatch
дальше не пузырится.
Почему в нашем случае возникает ошибка и при каких обстоятельствах она может всплывать?