*您要请求 * 功能 * 还是报告 * 错误 ?
窃听器
当前行为是什么?
如果在赋值ref
的过程中发生错误(也可能是其他情况),则错误边界可能会混淆,并在同一父对象中多次呈现。请参见https://codesandbox.io/s/stoic-fermi-6etqb,它呈现:
<div id="root">
<div class="boundary"><span>content</span></div>
<div class="boundary"><span>error</span></div>
</div>
预期的行为是什么?
<div id="root">
<div class="boundary"><span>error</span></div>
</div>
6条答案
按热度按时间crcmnpdw1#
这是新的Bug吗?
5lhxktic2#
在该沙箱上的版本之间切换,它首先出现在
react-dom@16.3.0-alpha.1
中。vtwuwzda3#
这个问题还没有解决吗?如果是的话,我试试。
lkaoscv74#
@gaearon介意我把这个拿上去吗?
yfjy0ee75#
您是否应该使用
getDerivedStateFromError
而不是componentDidCatch
来设置错误状态:编辑:https://codesandbox.io/s/brave-mahavira-g9n5x
wdebmtf26#
您不应该使用getDerivedStateFromError而不是componentDidCatch吗
理想情况下,两者都应该工作,但我刚刚测试了
getDerivedStateFromError
,它似乎不受这个问题的影响。getDerivedStateFromError
版本请参阅https://codesandbox.io/s/recursing-dawn-l029b。两个版本都需要翻转其中的第7行和第8行。在componentDidCatch
版本中,需要手动消除错误覆盖才能看到双重渲染。