React 함수 구성 요소 및 Typescript를 사용한 참조 전달
6473 단어 reacttypescriptwebdevbeginners
1. 전달할 참조 입력
참조는
createRef
기능.달리
useRef
후크, MutableRefObject
누구의 .current
속성은 undefined
로 초기화될 수 있습니다. 값, createRef
반환 immutable RefObject
따라서 초기 값 유형이 최종 값 유형과 다른 것에 대해 신경 쓸 필요가 없습니다.const refTitle: React.RefObject<Text> = React.createRef<Text>();
// In real life, you don't need to explicitly type refTitle
이 예에서 참조는
Text
따라서 구성 요소 Text
구성 요소가 createRef
type argument 명시적으로 type 참조 값.2. 자식 컴포넌트에 대한 참조 전달
ref attribute 자식 구성 요소의:
const ParentComponent: React.FC = () => {
const refTitle = React.createRef<Text>();
return (
<ChildComponent ref={refTitle} title="Hello, World!" />
);
}
3. 자식 컴포넌트 내부에 전달된 ref 할당하기
문서에서 말했듯이 :
By default, you may not use the ref attribute on function components because they don’t have instances.
If you want to allow people to take a
ref
to your function component, you can useforwardRef
그런 다음
forwardRef
기능:interface ChildComponentProps {
title: string;
}
const ChildComponent = React.forwardRef<Text, ChildComponentProps>(
(
{ title }: ChildComponentProps,
ref: React.ForwardedRef<Text>,
): JSX.Element => {
return (
<Text ref={ref}>{title}</Text>
);
},
);
// Name the component for debugging purpose and prevent eslint warning.
ChildComponent.displayName = 'ChildComponent';
이제 변경할 수 없는
RefObject
ParentComponent
Text
를 가리키는 ChildComponent
.구체적인 예
다음은 전체 상위 구성 요소가 준비되면 참조 전달을 사용하여 장치의 화면 판독기를 텍스트에 집중할 수 있는 React Native의 예입니다.
사진 작성자 JC Gellidon 에 Unsplash
Reference
이 문제에 관하여(React 함수 구성 요소 및 Typescript를 사용한 참조 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jexperton/ref-forwarding-with-react-function-components-and-typescript-20ip텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)