게시글을 수정하는 폼을 만들고 있는데 input 에 focus 를 주어야했다.
focus 는 그냥 ref 에 focus 메소드를 사용해서 구현했다.
코드는 다음과 같다.
const TextArea = ({ Edit, value, onChange }) => {
const ref = useRef(null);
useEffect(() => {
ref.current.focus();
}, []);
return (
<>
<AutoResizeTextArea
ref={ref}
/>
</>
);
};
export default TextArea;
문제는 커서가 다음과 같이 앞에 생긴다는 것이다.
해결 방법은 다음과 같다.
setSelectionRange를 사용하는 것이다.
ref.current.setSelectionRange(value.length, value.length);
해결 완료..
'공부기록 > 웹 개발' 카테고리의 다른 글
imgUrl 을 FormData 형식으로 변환하기 (0) | 2022.09.12 |
---|---|
React 스크롤 커스텀하기 , 스크롤 색 바꾸기 (0) | 2022.09.07 |
[eslint] Failed to load config "react-app" to extend from. (0) | 2022.09.05 |
useCallback, useMemo, createSelector (0) | 2022.09.02 |
Styled-components로 CSS 덮어쓰기 (feat.createGlobalStyle) (0) | 2022.09.02 |