I am using web components in my application. And in a web component, I need to insert a react component. Web Component has Shadow DOM. When I try to render the react compone
If you want to insert it inside the shadow DOM of a web component, first select the component (e.g. with querySelector) and then its containing shadow (shadowRoot). Simplified example:
// Create React Element.
class Example extends React.Component {
onClick() {
console.log('Shadow!')
}
render() {
return(
Hello World!
);
}
}
// Create web component with target div inside it.
const container = document.createElement('app');
document.body.appendChild(container);
// Add shadow root to component.
const shadow = document.querySelector('app').createShadowRoot({ mode: 'open' });
// Select the web component, then the shadowRoot.
const target = document.querySelector('app').shadowRoot;
ReactDOM.render( , target);