@dotnetlooper

Как управиться с пару modal-окнами на странице?

На странице должны работать два модальных окна: одна - для создание новых данных; вторая - подтверждение для удаления какой-то записи.

Проблема - при вызове удаления записи => сплывает окно с созданием новых даных
function Modal({ title, display, close, children }) {
    if(!display) {
        return null;
    }

    return (
        <div className="modal" onClick={ close }>
            <div className="content" onClick={event => event.stopPropagation()}>
                <div className="header">
                    <h4 className="title">{ title }</h4>
                    <button className="button" onClick={ close }>Close</button>
                </div>

                <div className="body">{ children }</div>
            </div>
        </div>
    )
}


Как мне каждый из них вызывать в свою очередь? Что в первом случае, что во втором, вызываю так:
onClick={() => setModal(true)
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Вместо логического значения пусть будет идентификатор окна, которое надо открыть:

<button onClick={() => setModal('раз окно')}>1</button>
<button onClick={() => setModal('два окно')}>2</button>
<button onClick={() => setModal('три окно')}>3</button>
...
<Modal display={modal === 'раз окно'}>...</Modal>
<Modal display={modal === 'два окно'}>...</Modal>
<Modal display={modal === 'три окно'}>...</Modal>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ParaBellum577
А почему вы не сделаете для каждой модалки свой стейт?
const [modalFirst, setModalFirst] = useState(false); 
const [modalSecond setModalSecond] = useState(false);
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект