2016-08-23 1 views

답변

9

React Native에서는 TextInput 값을 e.nativeEvent.text에서 가져올 수 있습니다.

불행히도 multiline={true}에 대해서는 작동하지 않습니다. 이 문제를 해킹하는 하나의 이유는 TextInput에 대한 참조를 유지하고 구성 요소의 _lastNativeText 속성을 통해 텍스트 값에 액세스하는 것입니다.

onBlur={() => console.log(this.refs.textInput._lastNativeText)}

+0

여러 줄의 경우 작동하지 않는 것 같습니다. – vijayst

+0

좋은 캐치. 좀 더 테스트를 마친 후 잠재적 인 해결 방법으로 답변을 업데이트했습니다. –

+0

react-native repo에서 문제를 제기했습니다. https://github.com/facebook/react-native/issues/9548 – vijayst

1

당신은 대신 '및 onblur'

onEndEditing의 'onEndEditing'방법을 사용한다 : 예를 들어 (당신의 TextInput 구성 요소는 할당 한 "에서 textInput"의 심판 가정)? : function 텍스트 입력이 끝날 때 호출되는 콜백.

및 onblur는 onEndEditing가의 TextInput

이 방식은 여러과 한 줄 모두를 위해 작동 onEndEditing

에 대한 특정 구성 요소의 기능입니다.

<TextInput 
    onEndEditing={(e: any) => 
    { 
     this.setState({textValue: e.nativeEvent.text}) 
    } 
}/> 
1

간단한 해결책 : 이 떨어진 상태의 이메일 및 onblur는 항상 사용자가 변경할 마지막 값을 갖게됩니다.

  validate =() => { 
      const { email } = this.state 
      console.log('Validating Email Here!', email) 
      } 

      <TextInput 
      style={styles.input} 
      placeholder='E-mail' 
      onChangeText={email => this.setState({email})} 
      onBlur={e => this.validate()} 
     /> 
관련 문제