2016-06-01 5 views
1

ID가 14 인 React 노드가 있다고 가정 해 봅니다. 이 노드가 트리의 id가 2 인 다른 노드의 하위 노드인지 확인하고 싶습니다. 그것은 반드시 반드시 직접 자식 일 필요는 없습니다. 14은 다른 여러 노드에 중첩 될 수 있지만 결국에는 2의 하위 노드이며 2이 해당 조상입니다.노드가 React/React Native에서 다른 노드의 부모인지 확인합니다.

내장 기능이 있습니까?

편집

나는 내 응용 프로그램에서 렌더링 ScrollView 몇 가지들, 그리고 나는 그들이 자동으로 포함 된 TextInput의를 처리합니다. 특정 TextView이 하나의 ScrollView에 포함되어 있는지 확인하고 싶습니다.

+0

컨텍스트를 추가 할 수 있습니까? 왜 그걸하고 싶니? –

+0

@DanielSchmidt 완료 – amb

+0

코드 예제가 필요한 경우 대답을 작성했습니다. –

답변

0

질문의 컨텍스트와 관련하여 scrollview가 포함 된 구성 요소에 context을 추가하고 입력을 포함하는 구성 요소의 컨텍스트를 가져 오는 것이 좋습니다. 여기서 전달 된 콜백을 입력에 바인딩 할 수 있습니다.

+0

흥미 롭습니다.하지만 노드의 요소에 액세스하여 컨텍스트를 얻어야합니다. 'findNodeHandle'는 불투명 한 노드 번호를 반환합니다. 그 번호로 요소를 얻을 수있는 방법을 찾는데 어려움을 겪고 있습니다. – amb

+0

좋아요, 우리 둘 다 서로 다른 컨텍스트 개념을 말하는 것입니다. 컨텍스트에 대한 내 개념은 React 메커니즘입니다.이 메커니즘을 사용하면 구성 요소 계층을 통해 전파 할 필요가없는 소품 (prop-like) 컨텐트를 지정할 수 있습니다. 첫 번째 질문은 "요소 컨텍스트"가 의미하는 것, 두 번째 이유는 ref 속성을 사용하고 전달 된 함수에 바인딩하여 노드 "dom"요소를 유지하는 것입니다. –

+0

문맥에 대한 의미는 정확히 당신이 묘사 한 것입니다. 이제는'TextInput.State.currentlyFocusedField'를 사용하여 노드의 '태그'를 가져옵니다. 이 태그는 React 구성 요소가 아니라 숫자입니다. (요소로 언급 했으므로, 내 잘못이라고도 함) 따라서 컨텍스트에 액세스 할 수 없습니다. – amb

0

나는 오래된 게시물 인 것을 알고 있지만, 현재 비슷한 것을 달성하려고합니다.

ReactNativeComponentTree (반응 네이티브/라이브러리/렌더러/SRC/렌더러/기본 /)에서 찾을 수있는 기능 getInstanceFromNode 있습니다. 노드 ID에 첨부 된 구성 요소를 리턴합니다.

그리고 전체 구성 요소 트리를 가져 오는 변수에는 "_hostParent"변수가 있습니다.

관련 문제