Задать вопрос
@PetyaSD

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

Есть 3 компонента. Родительский компонент Container, в нем хранятся ContainerItem'ы. При нажатии на кнопку внутри ContainerItem'a должно появляться модальное окно во весь экран, куда будут перекидываться данные ContainerItem'a (Что-то типо добавления пиццы на сайте ДоДо). Как это реализовать?
  • Вопрос задан
  • 440 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 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/
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽