반응: 기능적 구성 요소에서 모달 사용
13949 단어 reactcssbeginnersfunctional
이 예에서는 내가 좋아하는 애니메이션 목록을 표시하는 모달이 생성되었습니다!
먼저 버튼을 반환하는 간단한 함수 컴포넌트를 아래와 같이 생성합니다.
import React from 'react';
function ModalInFunctionalComponent (){
return(
<>
<button>Click to View My Favourite Animes</button>
</>
)
}
export default ModalInFunctionalComponent
useState
를 가져와서 모달을 열고 닫을 부울 값을 설정해야 합니다. 처음에는 modalIsOpen
가 false
로 설정됩니다.그래서
onClick
속성을 버튼으로 설정하여 모달을 열고 한번 누르면 setModalIsOpenToTrue
함수가 호출되어 modalIsOpen
를 true
로 설정합니다.import React, {useState} from 'react';
function ModalInFunctionalComponent (){
const [modalIsOpen, setModalIsOpen] = useState(false);
const setModalIsOpenToTrue =()=>{
setModalIsOpen(true)
}
return(
<>
<button onClick={setModalIsOpenToTrue}>Click to View My Favourite Animes</button>
</>
)
}
export default ModalInFunctionalComponent
다음으로 modal을 사용하려면 modal:
npm install react-modal
를 설치한 다음 구성 요소에서 modal을 가져옵니다: import Modal from react-modal
.모달 구성 요소는
isOpen
속성이 있는 기능 구성 요소에서 반환됩니다. 또한 모달을 닫기 위해 setModalIsOpenToFalse
를 호출하는 또 다른 버튼이 모달 구성 요소 내부에 추가됩니다.마지막으로, 내가 가장 좋아하는 애니메이션 목록을 반환하고 모달 구성 요소 내에서 가져와 반환되는 또 다른 구성 요소를 만들었습니다!
import React from 'react'
function AnimeList () {
return (
<>
<ul>
<h1>One Piece</h1>
<h1>Fullmetal Alchemist: Brotherhood</h1>
<h1>Naruto</h1>
<h1>Bleach</h1>
<h1>Haikyu!!</h1>
<h1>Kuroko no Basketball</h1>
<h1>My hero academia</h1>
<h1>One punch man</h1>
</ul>
</>
)
}
export default AnimeList
import React, {useState} from 'react';
import Modal from 'react-modal';
import AnimeList from './Anime';
function ModalInFunctionalComponent (){
const [modalIsOpen,setModalIsOpen] = useState(false);
const setModalIsOpenToTrue =()=>{
setModalIsOpen(true)
}
const setModalIsOpenToFalse =()=>{
setModalIsOpen(false)
}
return(
<>
<button onClick={setModalIsOpenToTrue}>Click to Open Modal</button>
<Modal isOpen={modalIsOpen}>
<button onClick={setModalIsOpenToFalse}>x</button>
<AnimeList/>
</Modal>
</>
)
}
export default ModalInFunctionalComponent;
그게 다야! 모달이 작동해야 합니다!
이제 몇 가지 스타일링을 위해:
const customStyles = {
content : {
top : '50%',
left : '50%',
right : 'auto',
bottom : 'auto',
marginRight : '-50%',
transform : 'translate(-50%, -50%)',
backgroundColor : '#F0AA89'
}
};
모달 구성 요소에는 값이
style
인 customStyles
속성이 있습니다. onRequestClose
속성을 추가하여 modalIsOpen
를 false
로 설정할 수도 있습니다. 사용자가 'x' 버튼뿐만 아니라 모달 구성 요소 외부를 클릭하면 모달이 닫힙니다. <Modal isOpen={modalIsOpen} style={customStyles} onRequestClose={()=> setModalIsOpen(false)}>
<button onClick={setModalIsOpenToFalse}>x</button>
<AnimeList/>
</Modal>
끝까지 만들어주셔서 감사합니다 :)
Reference
이 문제에 관하여(반응: 기능적 구성 요소에서 모달 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bhuma08/react-using-modal-in-functional-components-3po2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)