In my REACT application, I'm trying to render a Component programmatically, but pasing to it any REACT context. Let me show you a simple example with this sandbox: https://codesandbox.io/s/kind-carson-u0hup?file=/src/App.tsx
As you can see, what I want to do is rendering <Dialog>
programmatically when I click a button. But, inside that <Dialog>
, I want to use any context created on the React Tree.
Unfortunately, I am aware that React.render
does not pass any context, thus this cannot work: if you click on the button, you will see that, while the context in <InnerComponent>
provides the value 'FooBar'
. inside <Dialog>
I have the default value 'initialValue'
.
Thus, the question is, is there any way I can programmatically render a component, AND passing to its any kind of context?
I'm aware that React.createPortal
does pass the context, but that method MUST be called inside the return
statement of a component, while instead, in my case, I render the <Dialog>
after a click on the Button.
Also, yes, I could always have the <Dialog>
rendered, and use a prop isVisible
.. But this is a simpler example.
I've read several things (some of these in the following links), but none of these really helped me: