<ModalBtn onClick={openModalHandler}>
{ isOpen ? 'Opened!' : 'Open Modal'}
</ModalBtn>
class 2개로할거냐 1개로할거냐를 따지는 조건부 스타일링
<div className={isOn ? 'toggle-container toggle--checked' : 'toggle-container'}/>
{tags.map((tag, index) => {})}
<ModalView onClick={(event) => event.stopPropagation()}>
const removeTags = (indexToRemove) => {
setTags(tags.filter((el,index) => index !== indexToRemove ))
};
export const ModalBackdrop = styled.div`
// TODO : Modal이 떴을 때의 배경을 깔아주는 CSS를 구현합니다. 국룰
background-color:rgba(0, 0, 0, 0.5);
position:fixed;
left:0;
right:0;
top:0;
bottom:0;
display: flex;
justify-content: center;
align-items: center;
`;
const openModalHandler = () => {
setIsOpen(!isOpen)
};
<ModalBtn onClick={openModalHandler}>
핸들러함수에 전달할게 없을때 > 그냥 JSX안에 함수명 넣어준다.
2. 화살표함수
const removeTags = (indexToRemove) => {
setTags(tags.filter((el,index) => index !== indexToRemove ))
};
<span onClick={() => removeTags(index)}>
앞에 있던 변수를 인자로 넣어줄 때(위 경우 index) 앞에 화살표함수꼴을 붙여줘야 작동한다.
3. 화살표함수+인자
const addTags = (event) => {
if(event.keyCode === 13 && !tags.includes(event.target.value) && event.target.value !== "" ){
setTags([...tags,event.target.value]);
event.target.value='';
}
};
onKeyUp={(event) => {addTags(event)}}
keyUp한것으로 이벤트를 전달할 수 있을때, 보통 e로 전달한다. addTags(event)만으로는 작동안한다.