2017-06-07 26 views

Odpowiedz

19

onChangeText jest po prostu uproszczoną wersją onChange, dzięki czemu można z niego łatwo korzystać, bez konieczności przechodzenia przez event.target.value, aby uzyskać zmienioną wartość. Więc kiedy powinieneś używać onChange i kiedy onChangeText? Jeśli masz prosty formularz z kilku textinputs lub prostą logiką, można przejść od razu i używają onChangeText

<TextInput value={this.state.name} onChangeText={(text) => this.setState({name: text})}> 

Jeśli masz bardziej skomplikowane formy i/lub masz więcej logiki w danych manipulacji (jak obsługa tekstu inaczej z numeru), gdy użytkownik zmienia dane wejściowe, lepiej jest z funkcją zmiany, ponieważ zapewnia większą elastyczność. Na przykład:

handleChange(event) { 
    const {name, type, value} = event.nativeEvent; 
    let processedData = value; 
    if(type==='text') { 
     processedData = value.toUpperCase(); 
    } else if (type==='number') { 
     processedData = value * 2; 
    } 
    this.setState({[name]: processedData}) 
} 

<TextInput name="username" type="text" value={this.state.username} onChange={this.handleChange}}> 
<TextInput name="password" type="number" value={this.state.password} onChange={this.handleChange}}>