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>};
Таким образом оно будет открыто по умолчанию.
Доступны следующие функции для работы с состоянием модального окна:
#
ПараметрыНазвание | Тип | Описание |
---|---|---|
isOpen | boolean | Возвращает состояние открытия модального окна. |
onOpen | () => void | Функция для открытия модального окна. |
onClose | () => void | Функция для закрытия модального окна. |
onToggle | () => void | Переключает состояние модального окна на противоположное. |