2016-08-11 2 views
3

내 함수에서 참조하고 싶은 TextInput이 있습니다.반응 네이티브에서 작동하지 않는 ref가

undefined is not an object (evaluating 'this.refs.body')

ref 반응 네이티브 작동하지 않습니다 :

next() { 
     let body = this.refs.body.value 
    } 

<View> 
    <Text>Place the body here</Text> 
    <TextInput ref="body" placeholder="Your body goes here..." style={styles.body} placeholderTextColor='green'/> 
</View> 

하지만이 오류는 무엇입니까?

답변

7

나는 그들이 심판의 작동 방식을 바꾸 었다고 생각한다. 이제 문자열 대신 ref는 특정 구성 요소가 렌더링 될 때 호출되는 함수를 허용합니다. 당신이 좋아하는 뭔가를 시도 할 수
,

next() { 
let body = this._textInput.value 
} 

<View> 
    <Text>Place the body here</Text> 
    <TextInput ref={component => this._textInput = component} placeholder="Your body goes here..." style={styles.body} placeholderTextColor='green'/> 
</View> 

https://facebook.github.io/react-native/docs/direct-manipulation.html

또는, 당신은 또한 당신의 TextInput에의 onChange를 연결하고 다음 버튼을 클릭하면 입력을 기록 할 수 있습니다.

편집 :
Ref는 여전히 문자열을 허용하지만 더 이상 사용되지 않습니다. 대신 ref에 함수를 사용하십시오.

0

이 문제는 아직 마운트되지 않은 요소를 참조하는 것과 관련이있을 수 있습니다. componentDidMount 이상을 참조했는지 확인 했습니까?

+1

네, 그렇게 생각합니다. 구성 요소가 렌더링 된 후 다음 버튼을 누를 수 있습니다. 이것은'componentDidMount' 후에 다음을 누를 수 있다는 것을 의미하지 않습니까? 나는 아주 새로운 것을 유감스럽게 생각한다. –

관련 문제