@PetyaSD

Как сделать появление компонента модального окна при нажатии на кнопку в React?

Есть 3 компонента. Родительский компонент Container, в нем хранятся ContainerItem'ы. При нажатии на кнопку внутри ContainerItem'a должно появляться модальное окно во весь экран, куда будут перекидываться данные ContainerItem'a (Что-то типо добавления пиццы на сайте ДоДо). Как это реализовать?
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
const Container = () => {
  const [shownItemId, setsShownItemId] = useState('');

.....
    <ContainerItem itemId={id} onShowDetails={() => setsShownItemId(id)} ... />
.....
  {shownItemId && <Modal itemId={shownItemId} ... />
};


ContainerItem здесь рендерится в цикле map.
Оный цикл можно вынести в отдельный memo-компонент (которому в пропсы передавать setsShownItemId), чтобы не было перерендера всех итемов при открытии/закрытии модалки, но это уже частности.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ну так например если я правильно понял вопрос
{isStateTrue ? <Modal data={data}/>: null}

А вообще можно использовать либы, я эту часто юзаю https://material-ui.com/ru/components/modal/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы