2016-08-15 2 views
0

React가 정상적인 흐름을 벗어난 구성 요소를 렌더링하는 표준 방법을 제공합니까?측정을 위해 숨겨진 영역에 반응 요소를 렌더링하십시오.

숨겨진 영역에 자식 요소를 렌더링하고 크기를 측정 한 다음이 정보를 사용하여 구성 요소의 render 메서드에서 반환되는 내용을 변경하고 싶습니다. React.render를 사용하려고하면 오류가 발생합니다 :

Uncaught Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method 

답변

1

당신은 정상적인 흐름에서 오프 스크린 물건을 렌더링 할 수 있습니다. 그것을 앱 시동의 일부로 수행하고 측정 된 치수를 캐시하십시오. 그런 다음 하위 구성 요소가이를 수행 할 필요가 없습니다.

+0

구성 요소의 내용 (따라서 치수도 마찬가지 임)은 응용 프로그램 상태에 따라 다릅니다. 응용 프로그램 수명주기의 임의의 지점에서 그렇게 할 수있는 방법이 있습니까? – giaour

+0

'이중 렌더링'기술을 사용할 수 있습니다. 구성 요소에 대해 '숨김'으로 설정된 가시성 상태로 한 번 렌더링하고 componentDidMount에서 측정을 수행 한 다음 가시성 상태를 '가시성'로 설정하면 다시 올바른 측정 값으로 다시 렌더링됩니다. 반응하는 부 끄 러움에는 반응 네이티브와 같은 onLayout 소품이 없습니다 :) – hasseio

관련 문제