2022.02.23
https://react-icons.github.io/react-icons/search?q=kakao
Home -> install -> search에서 아이콘 검색
만약 RiKakaoTalkFill 을 사용하고 싶다면,
상단에 import { RiKakaoTalkFill } from "react-icons/ri";
명시 후,
return에 <RiKakaoTalkFill className="text-24 mr-12 mb-20 />
사용
icon 이름이 Ri로 시작하면 /ri , Si로 시작하면 /si, Hi로 시작하면 /hi로 변경해줘야 한다.
클릭 시 모달창 띄우기
import { HiOutlineDotsVertical } from "react-icons/hi";
import EditOrDeleteModal from "../components/modal/EditOrDeleteModal";
const [isOpen, setIsOpen] = useState(false);
const make = () => {
setIsOpen(true);
};
return (
...
<div className="flex flex-row">
<div className="text-24 font-poppins">{userInfo.name}</div>
<HiOutlineDotsVertical className="ml-12" onClick={make} />
{isOpen ? <EditOrDeleteModal /> : null}
</div>
...
)
아이콘을 클릭했을 때 실행될 함수가 모달을 여는 역할을 해야한다.
여기서 삼항연산자를 써야 하는데,
모달 디자인은 다른 파일에서 컴포넌트 EditOrDeleteModal로 불러오므로
isOpen일 상태에 모달컴포넌트가 보이게끔 하는 함수를 생성하면 된다.
즉, 아이콘 onClick하면 state를 true로 만드는 make 함수를 생성했다. return문에 삼항연산자로, isOpen이 true일 경우에 모달컴포넌트를 보이고, false일 경우엔 null (아무것도 없다) 이게끔 만든다.
🍟 리액트의 모든 것은 삼항연산자
구현하고보니 간단한건데, 로직을 생각하는 부분에서 오늘 처음 사용해 본 react-icons까지 들어가있다보니 좀 헷갈렸다. 이렇게 머릿속이 복잡할 때는 삼항연산자 기준으로 생각을 시작해보자! 훨씬 쉽게 풀린다.
return 부분에서 항상 궁금했던 부분을 오늘 확실히 알게 되었다.
이전의 make함수를 예로 들겠다.
const make = () => {
setIsOpen(true);
};
//returns void
make함수는 return이 없어서, void를 리턴한다.
이처럼
onClick={make}
혹은
onClick={() => make()}
를 사용해야 한다. ( 둘 다 같음 )
onClick={make()}
위에 제시된 3가지 함수 경우에 따라 모두 사용 가능하다.