Как исправить это предупреждение в консоли приложения React с помощью пакета react-modal:
Предупреждение: реактивно-модальный: элемент приложения не определен. Используйте
Modal.setAppElement(el)
или установитеappElement={el}
Мне не удалось выяснить, что же такое el
.
Контекст: в моем файле корневого компонента App.js:
...
import Modal from 'react-modal';
...
class App extends Component {
...
render(){
...
<Modal
className="modal"
overlayClassName="overlay"
isOpen={foodModalOpen}
onRequestClose={this.closeFoodModal}
contentLabel="Modal"
>
...
}
}
Где ...
означает, что код не показан.
Все работает нормально, но при открытии модального окна в моей консоли появляется следующее предупреждение:
index.js: 2177 Предупреждение: react-modal: элемент приложения не определен. Используйте
Modal.setAppElement(el)
или установитеappElement={el}
. Это необходимо, чтобы программы чтения с экрана не видели основной контент при открытии модального окна. Это не рекомендуется, но вы можете отказаться, установивariaHideApp={false}
.
Все, что я могу найти в модальных документах, это следующее:
Элемент приложения Элемент приложения позволяет вам указать часть вашего приложения, которая должна быть скрыта (с помощью aria-hidden), чтобы вспомогательные технологии, такие как программы чтения с экрана, не читали контент за пределами вашего модального окна.
Если вы выполняете рендеринг на стороне сервера, вам следует использовать это свойство.
Его можно указать следующими способами:
DOMElement
Modal.setAppElement(appElement);
query selector - uses the first element found if you pass in a class.
Modal.setAppElement('#your-app-element');
К сожалению, это не помогло! Я не могу понять, что должен представлять el
.
Вот некоторые из множества вариантов свойств, которые я пытался добавить в свой модальный компонент:
`appElement={el}`,
`appElement="root"` where `root` is the id that my App component is injected into
`appElement={'root'}`
`appElement="div"`,
`appElement={<div>}`,
`appElement={"div"}`
Я также пробовал вызывать Modal.setAppElement('root');
изнутри src/index.js
, где root
- корневой элемент, в который вводится мой App
компонент, а index.js - это то место, где я это делаю.