2017-02-13 1 views
1

반응하는 네이티브 앱을 작성하고 노드 ID로 요소를 찾으려고 할 때 문제가 발생합니다.React Native - Node ID로 요소 찾기

일부 컨텍스트 : 나는 handleFormFocus 기능을 가지고 내 등록 양식에 대한 양식 라이브러리를 사용하고

. 입력 중 하나가 집중 될 때마다 트리거됩니다. 이 함수에 제공되는 매개 변수는 이벤트와 구성 요소 ID (정수)이며, 어떤 입력에 실제로 초점이 맞춰 졌는지 (예 : "이메일")에 대한 유용한 정보를 제공하지는 않지만 대신 ID 만 남겨 둡니다.

내가 사용 된 반응 네이티브 다음 작업을 수행 할 수 있었다 0.34 :

const ReactNativeComponentTree = require('react/lib/ReactNativeComponentTree'); let targetComponent = ReactNativeComponentTree.getInstanceFromNode(component); let inputRef = targetComponent._currentElement.props.fieldRef;

그러나 이것은 더 이상 작동 0.41로 업데이트 한 이후

. Unable to resolve module react/lib/ReactNativeComponentTree

누구나 기본 0.41 반응과의 ID로 요소를 찾는 수행하는 방법을 알고 : 나는 다음과 같은 오류가 발생합니다?

시간 내 주셔서 감사합니다.

+0

요소에 대한 ID를 사용하여 안티 패턴을 고려 고유 반응에. 왜 그냥 심판을 통과하지? – PaulBGD

+0

@PaulBGD 당신 말이 맞습니다. 라이브러리에서 TextInput 구성 요소를 감싸는 방식으로 인해 입력 필드의 isFocused 속성에 액세스하는 방법을 명확하게하지 못했던 양식 라이브러리를 사용하기 때문에 ref에서 비정상적인 문제가 발생했습니다. 어쨌든, 당신의 반응은 저를 알아 내기 위해 저를 자극했습니다. 감사! – jmtibs

+0

@PaulBGD : 이것이 안티 패턴이라는 경고 문서를 보내 주시면 좋을 것 같습니다. 또한 문서에서 승인 된 방식으로 동일한 목표를 달성하는 방법을 찾는 것이 매우 어렵습니다. 특히 배열을 배열에 매핑 할 때 생성 된 구성 요소의 경우. – hippietrail

답변

0

는 0.41+ 반응 :

import ReactNativeComponentTree from 'react-native/Libraries/Renderer/src/renderers/native/ReactNativeComponentTree'; 

가 0.51+ 반응 :

import ReactNativeComponentTree from 'react-native/Libraries/Renderer/shims/ReactNativeComponentTree'; 
관련 문제