React forwardRef : ref 및 기타 소품

Sep 21 2020

상위 구성 요소 :

const Parent = (props) => {
  const ref = useRef();

  return <Child ref={ref} />
}

그리고 아이 :

const Child = forwardRef((props, ref) => {
  return <button ref={ref} ...>click</button>
})

내가 더 많은 소품을 전달하려면 Child단지보다 ref?

문서와 튜토리얼을 검색했지만 아무것도 찾지 못했습니다. 시행 착오로 이것이 효과가 있다고 생각합니다.

// in parent
<Child onClick={...} prop1={...} prop2={...} ref={ref} />

다음에 Child, 나는이 소품 (얻을 수있는 onClick, prop1, prop2에서) props.

그게 내가해야 할 전부입니까? ref아이에게 전달하는 마지막 소품으로 넣어 ?

Child필요한 버튼이 두 개 이상 있으면 어떻게 ref합니까?

답변

PeterKeuter Sep 21 2020 at 20:11
// in parent
<Child onClick={...} prop1={...} prop2={...} ref={ref} />

순서는 무관합니다. forwardRef속성에서 ref prop을 추출하고 래퍼를 만듭니다.

다른 props는 props( forwardRef콜백 함수 의 첫 번째 인수)에서 사용할 수 있습니다.

여러 개의 ref를 사용하려면 여기 에서 예제를 사용할 수 있습니다 .

aeXuser264 Sep 21 2020 at 20:12

글쎄요, 저는이 접근법을 따랐습니다.

부모 구성 요소

const Parent = (props) => {
  const ref = useRef();

  return <Child _ref={ref} />
}

하위 구성 요소

const Child = forwardRef(({ _ref, prop1, prop2, prop3, ...props }) => {
  return <button ref={_ref} ...>click</button>
})

그리고 그것은 일했습니다