preactjs / preact-compat

ATTENTION: The React compatibility layer for Preact has moved to the main preact repo.
http://npm.im/preact-compat
MIT License
950 stars 148 forks source link

componentDidMount is not fired for portals #512

Open 1999 opened 5 years ago

1999 commented 5 years ago

I'm having a very awkward issue at the moment: my render() function returns a portal:

render() {
    const {
      children,
      overrideStyle = {},
    } = this.props;

    const portal = (
      <PortalContainer>
        <Text innerRef={this.textRef}>
          <Overlay style={overrideStyle}>
            <OverlayContent>
              {children}
            </OverlayContent>
          </Overlay>
        </Text>
      </PortalContainer>
    );

    return createPortal(portal, this.domNode);
  }

But when the component is rendered for the first time "render" is called, but "componentDidMount" doesn't get executed. On the second render everything works fine and component actually renders and componentDidMount is fired. Is here anything I can help?

developit commented 5 years ago

@1999 - componentDidMount of the parent component, or the child?

1999 commented 5 years ago

componentDidMount() of the component which has this render implementation that I described above.