Я использую реагирующий крюк и реагирующий портал, чтобы создать и показать модал. Вот мой код

Modal.tsx

const modalRoot = document.getElementById('modal'); const Modal: React.FC{amp}lt;Props{amp}gt; = memo(({isOpen, toggle, children}) ={amp}gt; { const el = document.createElement('div'); useEffect(() ={amp}gt; { modalRoot.appendChild(el); return (() ={amp}gt; { modalRoot.removeChild(el); }) }); return ( isOpen ? createPortal( {amp}lt;React.Fragment{amp}gt; {amp}lt;div className="modal fade"{amp}gt; {amp}lt;div className="modal-dialog" role="document" style={{width: "700px"}}{amp}gt; {children} {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/React.Fragment{amp}gt;, el ) : null ) }); 

useModal.tsx

 const useModal = () ={amp}gt; { const [isOpen, setIsShowing] = useState(false); const toggle = () ={amp}gt; { setIsShowing(!isOpen); }; return [ isOpen, toggle, ] }; 

С помощью

 const [isModalOpen, toggleModal] = useModal(); {amp}lt;Modal isOpen={isModalOpen} toggle={toggleModal}{amp}gt; {amp}lt;h1{amp}gt;test{amp}lt;/h1{amp}gt; {amp}lt;p{amp}gt;Other text that describes what is happening{amp}lt;/p{amp}gt; {amp}lt;button onClick={() ={amp}gt; toggleModal(false)}{amp}gt;toggle{amp}lt;/button{amp}gt; {amp}lt;/Modal{amp}gt; {amp}lt;div className="col-lg-2 pull-right"{amp}gt; {amp}lt;div className="pull-right"{amp}gt; {amp}lt;button type="button" // @ts-ignore onClick={() ={amp}gt; toggleModal(!isModalOpen)} className="btn btn-primary btn-outline"{amp}gt;{amp}lt;i className="ti-plus"/{amp}gt; {amp}lt;/button{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; 

Но когда я нажимаю на эту кнопку. Это не показывает мой модал. Когда я нажимаю F12 и проверяю дом. Я вижу модальные визуализации. пожалуйста, помогите мне

Я попытался запустить ваш код на Codesandbox, и он работает для меня правильно. Вот ссылка: https://codesandbox.io/s/sharp-dust-oyz0c

Хотя я подозреваю, что вы не видите модальные из-за стиля. Note что модал fade в className. Попробуйте проверить стили или создать коды и коробку со всеми необходимыми стилями, чтобы их было легко отлаживать.

Надеюсь это поможет!