У функции ReactDOM.render есть второй аргумент в котором вы указываете html-элемент, внутрь которого будет рендерится приложение. Например:
const container = document.getElementById('calendar');
ReactDOM.render(
<App/>,
container
);
Соответственно, можно сделать так: при клике на кнопку рисовать на странице элемент с
id="calendar" и подключать js-файл собранного приложения. Если элемент с таким id уже существует, то к нему применять стиль
display: visible. Тогда React-приложение будет появляться при нажатии на кнопку. Скрывать можно очень просто, путём добавления стиля
display: none для элемента с
id="calendar".
P.s. ещё можно поэкспериментировать с
вот такой библиотекой.