-
-
Notifications
You must be signed in to change notification settings - Fork 26.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Custom Elements hello world throws error #3225
Comments
Looking into this, I think it's because we're transpiring ES6 classes by default, but Not sure of the solution though... |
Rob Dodson talks about this issue in the context of Angular here: https://youtu.be/Ucq9F-7Xp8I?t=7m57s Sounds like the solution is to use Webpack to bundle in https://github.com/webcomponents/webcomponentsjs/blob/master/custom-elements-es5-adapter.js without transpiling. |
Yep, this isn't expected to work with Babel. |
FWIW, using this babel plugin https://github.com/github/babel-plugin-transform-custom-element-classes seems to fix the issue. The problem is Babel can't properly extend built-ins like HTMLElement, Array, etc. |
Looping back around to this issue. If anyone runs across it, you can fix the error by including the custom-elements-es5-adapter.js detailed here: https://reactjs.org/docs/web-components.html#using-react-in-your-web-components |
This solved my issue with |
Using Webpack there. Tnx to @robdodson avice added those 2 plugins:
to my webpack.config.js. Works like a charm. |
Is this a bug report?
Yes
Can you also reproduce the problem with npm 4.x?
Yes
Which terms did you search for in User Guide?
Custom Elements, Web Components. No results.
Environment
node -v
: v8.6.0npm -v
: 5.3.0yarn --version
(if you use Yarn): N/Anpm ls react-scripts
(if you haven’t ejected): N/AThen, specify:
Steps to Reproduce
import './hello-world.js
) into any React component and use it:<hello-world />
Expected Behavior
Text "hello world" is rendered on screen.
This correct behavior is observed when using the custom element outside of React (included in repro repo), i.e.:
Actual Behavior
Text isn't rendered, console error is shown:
Uncaught TypeError: Failed to construct 'HTMLElement': Please use the 'new' operator, this DOM object constructor cannot be called as a function.
Reproducible Demo
Example minimal CRA project: https://github.com/owencm/custom-elements-issue
Running it demonstrates the issue.
The text was updated successfully, but these errors were encountered: