代码之家  ›  专栏  ›  技术社区  ›  mohsinulhaq

如何确定组件是否包含React继承权

  •  4
  • mohsinulhaq  · 技术社区  · 6 年前

    我创建了一个弹出库,它使用React Portal将每个弹出呈现为 body 减轻 overflow: hidden 问题。现在弹出窗口可以打开更多的弹出窗口,我想确定是否在这些弹出层次结构之外单击以关闭所有弹出窗口。如果它们是嵌套的,我可以做一个 .contains 对于 e.target ,但在这里,DOM层次结构将是扁平的(即,所有弹出窗口都是body中的兄弟)。由于React门户的性质,将只嵌套React层次结构。我的问题是如何最好地检测出是在弹出层次结构内部还是外部进行了单击?

    1 回复  |  直到 6 年前
        1
  •  0
  •   mohsinulhaq    6 年前

    最后,我使用react context将popup的关闭函数发送给它的子级。如果子函数本身是弹出式的,则可以调用它自己的关闭函数,然后通过调用父关闭函数来委托进一步的传播。