Почему react отображает мой функциональный компонент в нижней части моей страницы?

#reactjs #react-component

Вопрос:

Моя главная страница выглядит так :

 import React from "react"; import { Fragment } from "react"; import ModalA from "../components/Modal/ModalOptionA";  export default class AePage extends React.Component {  constructor(props) {  super(props);  }  render() {  return (  lt;Fragmentgt;   lt;div className="grid-intro"gt;  lt;div className="text-intro"gt;  Some Text  lt;/divgt;  lt;div className="modal-component-insert"gt;  lt;ModalA show={true}/gt;  lt;/divgt;  lt;div className="text-outro"gt;  Some text  lt;/divgt;  lt;/divgt;  lt;/Fragmentgt;  )  } }  

И мой компонент выглядит так :

 import React from "react";  import ReactDOM from "react-dom";  const Modal = ({ show, closed}) =gt; {  return (  ReactDOM.createPortal(  lt;gt;  lt;div className="modal"gt;  My Component  lt;/divgt;  lt;/gt;,  document.body  )  )  } export default Modal;  

Приведенный выше код отображает что-то вроде :

 Some Text Some Text My Component  

Почему мой компонент не отображается между текстами ? Существует ли конкретный способ для React отображать этот компонент между моими разделами ?

Ответ №1:

Вот ReactDOM.createPortal для чего это нужно. Это всегда будет перемещать вещи в нижнюю часть DOM. Таким образом, вы можете расположить его выше всего остального, используя CSS.

Похоже, вам это на самом деле не нужно, поэтому я бы просто заменил ваш код для модального компонента на:

 import React from "react";  const Modal = ({ show, closed}) =gt; {  return (  lt;div className="modal"gt;  My Component  lt;/divgt;  )  } export default Modal;