개발자

리액트에서 컴포넌트 직접 접근 후 값 수정하기

2023년 01월 17일조회 946

안녕하세요! 최근에 리액트를 접해서 연습삼아 리액트로 미니 게임을 만들고 있습니다. 컴포넌트를 클릭하면 해당 컴포넌트의 위치가 랜덤하게 바뀌는 걸 구현 하고 싶은데 방법을 모르겠습니다.(하늘에서 별이 랜덤으로 반짝 반짝 하듯이) useRef를 통해 DOM에 직접 접근 하는 것 까지는 알았는데 값 수정을 못해서요 ㅠㅠ 예를들어 ,바닐라 js에서는 const random = () => Math.floor(Math.random()*99+1) let x =random() let y = random() document.Queryselector().style = “position : absolute; top: “ + x.toString()+”%, left :”+ y.toString()+”%”; 이런 식으로 생각했는데 리액트에서는 어떻게 하면 좋을까요..? 구글링만 하루종일 했는데 해결법을 못 찾아 질문 남깁니다 ..!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

인기 답변

김익현님의 프로필 사진

안녕하세요~ 😄 React 에서는 ref를 활용하여 직접적으로 접근하시는것 보다 state를 활용하여 접근하시면 더 좋을 것 같아요~ 예를 들어 const [top, setTop] = useState(0); const [left, setLeft] = useState(0); useEffect(() => { setTop(Math.floor(Math.random() * 99 + 1)); setLeft(Math.floor(Math.random() * 99 + 1)); }, []); return ( <div className="relative h-full w-full"> <p style={{ position: "absolute", top: top, left: left }}>별~</p> </div> ); 이런식으로 접근하시면 더 좋을것 같습니다!! useState랑 useEffect를 꼭 보시는걸 추천드리겠습니다!! 화이팅~💪

profile picture

익명

작성자

2023년 01월 17일

우왓 감사합니다 ~~!!! 조언 해주신 거 바탕으로 구현해 보겠습니다 :)

김민혁 (Noel)님의 프로필 사진

x, y좌표를 상태로써 갖고 있고, 컴포넌트 클릭 시 해당 상태를 계속 업데이트 해주면 될 것 같습니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!