I am trying to render different components from react-bootstrap based on the a string in a showModal function in a button, but I am getting Warning: <MyModal/> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
This snippet does not throw the same warning, but it creates an element, which is lowercased, based on the string in the function.
class Modal extends React.Component {
render() {
return (
<h1>text</h1>
)
}
}
class MyButton extends React.Component {
render() {
return (
<button onClick={() => showModal("Modal")}>Show Modal</button>
)
}
}
const showModal = (modalName) => {
const MyModal = modalName
ReactDOM.render(<MyModal />, document.getElementById("root"));
}
ReactDOM.render(<MyButton />, document.getElementById("root"));
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Do you have any ideas?