Перейти к основному содержимому

useModalState

Для чего нужен#

Он может пригодиться вам для более быстрого и гибкого управления состоянием ваших модальных окон. Как собственных так и готовых библиотек.

Преимущества#

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

import React from 'react';
const Component = () => {  const [isOpen, setIsOpen] = useState(false);
  const onOpen = () => setIsOpen(true);  const onClose = () => setIsOpen(false);
  // Компонент кнопки  <Button onClick={onOpen}>Открыть модальное окно</Button>
  // Компонент модального окна  <Modal isOpen={isOpen} onClose={onClose}>    // Код компонента...  </Modal>};

Из примера выше видно, как много всего нужно написать для управления одним состоянием. Используя useModalState, вам не потребуется писать лишнего кода, а также создавать лишние состояния внутри вашего компонента.

Как начать использовать#

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

import React from 'react';import { useModalState } from 'react-hooks-kit';
const Component = () => {  const { isOpen, onOpen, onClose, onToggle } = useModalState();
   // Компонент кнопки  <Button onClick={onOpen}>Открыть модальное окно</Button>
   // Компонент модального окна  <Modal isOpen={isOpen} onClose={onClose}>   // Код компонента...  </Modal>};

Также можно установить начальное состояние для модального окна:

import React from 'react';import { useModalState } from 'react-hooks-kit';
const Component = () => {  const { isOpen, onOpen, onClose, onToggle } = useModalState({ initialIsOpen: true });
   // Компонент кнопки  <Button onClick={onOpen}>Открыть модальное окно</Button>
   // Компонент модального окна  <Modal isOpen={isOpen} onClose={onClose}>   // Код компонента...  </Modal>};

Таким образом оно будет открыто по умолчанию.

Доступны следующие функции для работы с состоянием модального окна:

Параметры#

НазваниеТипОписание
isOpenbooleanВозвращает состояние открытия модального окна.
onOpen() => voidФункция для открытия модального окна.
onClose() => voidФункция для закрытия модального окна.
onToggle() => voidПереключает состояние модального окна на противоположное.