Developing Diary/HanInBridge React Update
[React오답노트] MouseEnter가 반응하지 않을 때
kurooru
2023. 1. 17. 01:01
< 목표 >
사용자가 위의 화면에서 About us, Interpreation, Consulting 영역에 마우스를 얹으면,
오른쪽의 Hello, We are HanIn Bridge 영역의 화면이 알맞게 변화하는 UI를 만들어보자
Landing Engine code
import Wrapper from "../../styles/wrap";
import Img from "../../pages/landing/img"
import { FlexDiv, Ul } from "./style";
import { useState } from "react";
import { Link } from "react-router-dom";
// Main engine of Landing page
function Landing () {
// Change currImg with using useState
const [currImg, setCurrImg] = useState('default');
// When user puts mouse on the li
function handleMouseEnter(currState) {
// change to proper img and rerender the UI
setCurrImg(currState);
}
return (
// Landing
<Wrapper>
<FlexDiv>
<Ul>
<li onMouseEnter={()=>handleMouseEnter('aboutus')}
onMouseLeave={()=>handleMouseEnter('default')}>
<Link to="/aboutus"><p>About us</p></Link>
</li>
<li onMouseEnter={()=>handleMouseEnter('interpretation')}
onMouseLeave={()=>handleMouseEnter('default')}>
<Link to="/interpretation"><p>Interpretation</p></Link>
</li>
<li onMouseEnter={()=>handleMouseEnter('consulting')}
onMouseLeave={()=>handleMouseEnter('default')}>
<Link to="/consulting"><p>Consulting</p></Link>
</li>
</Ul>
<Img currImg={currImg}></Img>
</FlexDiv>
</Wrapper>
);
};
export default Landing;
문제의 발생
마우스가 들어오면 handleMouseEnter 함수에 'aboutus'를 argument로 넣어 보내 이를 구현하고자 했는데,
다음 코드가 말을 듣지 않았다.
<li onMouseEnter={handleMouseEnter('aboutus')}
onMouseLeave={handleMouseEnter('default')}>
해결 방안
무기명의 화살표 함수를 이용하였더니 해결되었다.
해결 코드
<li onMouseEnter={()=>handleMouseEnter('aboutus')}
onMouseLeave={()=>handleMouseEnter('default')}>