preact-shadow-root icon indicating copy to clipboard operation
preact-shadow-root copied to clipboard

Support Preact X

Open lydell opened this issue 6 years ago • 2 comments

  • this.base is undefined at componentDidMount, so this.shadow never gets initialized.
  • props.children[0] is undefined, since children isn’t always an array anymore.
  • The third argument to render() should be removed, as per the Preact X upgrade docs.

I run the following replacements on my bundle as a workaround:

    // Hacks to make `preact-shadow-root` work with Preact 10.
    "this.base&&this.base.parentNode": "this.__P",
    "o.children[0],": "o.children,",
    "this.shadow.firstChild": "undefined",

lydell avatar Oct 05 '19 14:10 lydell

Sorry for not seeing this!

I think actually the first replacement (this.__P) should no longer be necessary in the latest version of Preact 10. The children one is definitely needed though, and the third argument to render can be removed.

developit avatar Mar 03 '20 20:03 developit

@developit I just tried this and it seems that the first replacement (this.__P) is still required in the latest version of Preact. If render method doesn't return something actually "renderable" this.base would be undefined at componentDidMount. Do you have any suggestions how to make it work without using this.__P?

albv avatar Jun 09 '21 15:06 albv