2016-07-17 9 views
10

ich mit React.js gerade erst begonnen, und ich bin nur nicht sicher, ob es eine besondere Art und Weise ist es, den Wert einer Textbox zu erhalten, kehrte wie dies in einer Komponente:Wie bekomme ich den Wert von Textbox in React?

var LoginUsername = React.createClass({ 
    render: function() { 
    return (
     <input type="text" autofocus="autofocus" onChange={this.handleChange} /> 
    ) 
    }, 
    handleChange: function (evt) { 
    this.setState({ value: evt.target.value.substr(0, 100) }); 
    } 
}); 

Antwort

11

Wie in documentation Sie müssen verwenden gesteuerten Eingang erhalten. Um einen Eingang zu machen - gesteuert Sie benötigen zwei Stützen an, an sie

  1. onChange - Funktion, die value Komponente state mit einem Eingang jedes Mal Eingang
  2. value geändert wird eingestellt würde - Eingangswert von der Komponente state (this.state.value in Beispiel)

Exam ple:

getInitialState: function() { 
    return {value: 'Hello!'}; 
    }, 
    handleChange: function(event) { 
    this.setState({value: event.target.value}); 
    }, 
    render: function() { 
    return (
     <input 
     type="text" 
     value={this.state.value} 
     onChange={this.handleChange} 
     /> 
    ); 
    } 

Insbesondere über TextArea- - here

+0

verwenden So wie würde ich die oben genannten verwenden, um den aktuellen Wert der Textbox zu erhalten? – think123

+0

Durch Ersetzen von 'input' Element in' textarea' –

3

nur Ihre Eingabe aktualisieren, um der Wert

var LoginUsername = React.createClass({ 
    getInitialState:function(){ 
    return { 
     textVal:'' 
    } 
}, 
    render: function() { 
    return (
     <input type="text" value={this.state.textVal} autofocus="autofocus" onChange={this.handleChange} /> 
    ) 
    }, 
    handleChange: function (evt) { 
    this.setState({ textVal: evt.target.value.substr(0, 100) }); 
    } 
}); 

Ihr Texteingabewert ist immer in dem Zustand, und Sie können das gleiche von this.state.textVal

+0

Könnten Sie bitte ein Use-Case-Szenario für die oben zur Verfügung stellen? – think123

+0

Wenn Sie den Textinput vom Server vorab füllen wollen, dann müssen Sie ein Feld im Zustand –

+0

Ich versuche auf den Wert von außerhalb 'LoginUsername' zuzugreifen - im Moment versuche ich,' LoginUsername.state.textVal ', aber es funktioniert nicht für mich ... – think123