유형 'never'에 속성 'value'가 없습니다.mui에서 useRef 후크 사용 시
머티리얼 UI를 사용하여 로그인 및 등록 페이지를 작성하고 있습니다.useRef
TextFiled 참조 인스턴스를 반환하려면xxxRef.current.value
입력값을 가져옵니다.
내 프로젝트를 원활하게 실행할 수 있고value
(정확하게) 하지만 콘솔은 항상 다음 사항을 상기시켜 줍니다.
Property 'value' does not exist on type 'never'.
코드 스니펫은 다음과 같습니다.
const accountRef = useRef();
<TextField
variant="outlined"
margin="normal"
required
fullWidth
id="account"
label="Account"
name="account"
autoComplete="account"
autoFocus
defaultValue={account}
inputRef={accountRef}
/>
const payload = {
account: accountRef.current?.value ?? '',
password: passwordRef.current?.value ?? '',
nickname: nicknameRef.current?.value ?? '',
};
useRef
TypeScript와 함께 사용하는 경우 범용이므로 참조되는 요소 유형을 다음과 같이 정의할 수 있습니다.const ref = useRef<Type>();
의 유형 정의를 조사하다inputRef
재료의 특성UI는 다음과 같습니다.
/**
* Pass a ref to the `input` element.
*/
inputRef?: React.Ref<any>;
수정의 경우 다음과 같이 참조를 정의할 수 있습니다.
const accountRef = useRef<any>();
단, ref는 컴포넌트 내부의 입력 필드를 통과합니다.유형은 다음과 같습니다.
const accountRef = useRef<HTMLInputElement>();
useRef()를 사용할 때는 올바른 유형(HTMLInputElement)을 사용해야 합니다.
const inputRef = useRef<HTMLInputElement>();
const [caretPosition, setCaretPosition] = useState<number | null>(null);
const updateCaretPosition = () => {
inputRef.current && setCaretPosition(inputRef.current.selectionStart);
};
useRef에 추가할 수 있는 다른 유형이 있습니다.
기타 타입은 다음과 같습니다.
HTMLElement
HTMLFormElement
number
string
- 기타...
useRef는 일반적으로 HTML 요소의 참조를 사용하는 데 사용되지만 데이터 저장에도 사용될 수 있습니다.
Martin이 말한 것처럼 HTMLInputElement 유형을 사용하고 useRef에 null을 추가합니다.입력 요소 내부의 ref 속성에 대한 오류가 사라졌습니다.
const input = useRef<HTMLInputElement>(null)
언급URL : https://stackoverflow.com/questions/61475289/property-value-does-not-exist-on-type-never-when-use-useref-hook-in-mui
'programing' 카테고리의 다른 글
Wordpress Admin에서 게시 ID를 가져오는 방법 (0) | 2023.03.08 |
---|---|
스프링 부트 프로젝트의 application.properties 파일은 어디에 있습니까? (0) | 2023.03.08 |
Http Only cookie는 AJAX 요청에서 어떻게 작동합니까? (0) | 2023.03.08 |
HTML을 각도 지시어에 전달하려면 어떻게 해야 합니까? (0) | 2023.03.08 |
데이터베이스에서 동적 HTML 문자열 컴파일 중 (0) | 2023.03.08 |