Check for Suspense boundary in a root Container (#16673)
If we find a Container that might mean that we're on a node that is inside a Suspense boundary that is directly inside the Container root. Imagine the div is a Container and the span is a dehydrated instance: ``` <div> <!--$--> <span /> <!--/$--> </div> ``` There's no way to tests this yet since I'm not actually utilizing the return value yet. The solution is to just use the same path to check for a Suspense boundary as if we find a parent instance.
Sebastian Markbåge committed
Sep 5, 2019 at 16:06 UTC
e11bf42ceac5bb5ef0d7c98d0d075048c94352dd
1 file changed
+4
-6
packages/react-dom/src/client/ReactDOMComponentTree.js
+4
-6
@@ -49,12 +49,10 @@ export function getClosestInstanceFromNode(targetNode) {
49
// instance. Note that we don't check this field on the targetNode
50
// itself because the fibers are conceptually between the container
51
// node and the first child. It isn't surrounding the container node.
52
- targetInst = parentNode[internalContainerInstanceKey];
53
- if (targetInst) {
54
- // If so, we return the HostRoot Fiber.
55
- return targetInst;
56
- }
57
- targetInst = parentNode[internalInstanceKey];
52
+ // If it's not a container, we check if it's an instance.
53
+ targetInst =
54
+ parentNode[internalContainerInstanceKey] ||
55
+ parentNode[internalInstanceKey];
56
if (targetInst) {
57
// Since this wasn't the direct target of the event, we might have
58
// stepped past dehydrated DOM nodes to get here. However they could