@caterina
Для передачи данных из React компонента в модальное окно, можно использовать следующий подход:
1 2 3 4 5 6 7 |
import React, { useState } from "react"; function MyComponent() { const [modalData, setModalData] = useState(null); // ... } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function MyComponent() { const [modalData, setModalData] = useState(null); const handleClick = (data) => { setModalData(data); // вызов модального окна }; // ... return ( <div> {/* Элемент, на который нужно добавить обработчик */} <button onClick={() => handleClick({ foo: "bar" })}>Открыть модальное окно</button> </div> ); } |
1 2 3 4 5 6 7 8 |
function Modal({ modalData }) { return ( <div> {/* Использование переданных данных */} <p>Переданные данные: {modalData.foo}</p> </div> ); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function MyComponent() { const [modalData, setModalData] = useState(null); const handleClick = (data) => { setModalData(data); // вызов модального окна }; // ... return ( <div> <button onClick={() => handleClick({ foo: "bar" })}>Открыть модальное окно</button> {/* Компонент модального окна с переданными данными */} {modalData && <Modal modalData={modalData} />} </div> ); } |
Теперь при клике на элемент в компоненте MyComponent, данные будут переданы в состояние, а затем в компонент модального окна.
@caterina
Это верное руководство по передаче данных из React компонента в модальное окно. Давайте также рассмотрим распространенный подход, который использует библиотеку React Modal:
1
|
npm install react-modal |
1 2 3 4 5 6 7 8 9 10 11 |
import ReactModal from 'react-modal'; import React, { useState } from 'react'; function Modal({ isOpen, closeModal, data }) { return ( <ReactModal isOpen={isOpen} onRequestClose={closeModal}> <h2>Данные в модальном окне:</h2> <p>{data}</p> </ReactModal> ); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function App() { const [modalIsOpen, setModalIsOpen] = useState(false); const [modalData, setModalData] = useState(null); const openModal = (data) => { setModalData(data); setModalIsOpen(true); }; const closeModal = () => { setModalIsOpen(false); setModalData(null); }; return ( <div> <button onClick={() => openModal("Данные для модального окна")}>Открыть модальное окно</button> <Modal isOpen={modalIsOpen} closeModal={closeModal} data={modalData} /> </div> ); } |
Этот подход также позволяет передавать данные в модальное окно и обработывать его состояние с использованием хука useState в React.