2015-06-25 17 views
8

Ich habe die folgende Formularkomponente in einem Oberlicht-Dialog, nach dem Senden, wenn der Dialog wieder geöffnet wird, enthält das Formular, es enthält den vorherigen übergebenen Wert. Kann mir bitte jemand sagen, wie man das stoppt und den Textarea-Wert jedes Mal löscht, wenn der Dialog geöffnet wird?Clear reactJs textarea nach dem Senden

Hier ist meine Komponente:

var AddNoteForm = React.createClass({ 


componentDidMount: function() { 

     React.findDOMNode(this.refs.notes).value = ""; 
}, 
handleSubmit: function (event) { 
    event.preventDefault(); 

    var notes = React.findDOMNode(this.refs.notes).value; 

    var details = { 
     studentId: this.props.studentId, 
     schoolId: this.props.schoolId, 
     notes: notes 
    }; 

    this.props.onSubmit(details); 
}, 

render: function() { 
    return (
     <form className="pure-form pure-form-aligned" 
      onSubmit={this.handleSubmit}> 
      <div className="pure-control-group"> 
       <label htmlFor="notes">Note</label> 
       <textarea ref="notes" id="notes" placeholder="Note..." > 
       </textarea> 

      </div> 
      <div className="pure-controls"> 
       <input type="submit" value="Save" /> 
      </div> 
     </form> 
    ); 
} 
}); 

module.exports = AddNoteForm; 

Antwort

14

Grundsätzlich Ihre Form ist nicht abgehängt zu bekommen. Daher macht das Schreiben des Codes in componentDidMount keinen Sinn. Also die schnelle Lösung für Ihr Problem wäre, das Textfeld zu löschen, nachdem Sie den Wert in Handle senden Methode

handleSubmit: function (event) { 
    event.preventDefault(); 

    var notes = this.refs.notes; 

    var details = { 
    studentId: this.props.studentId, 
    schoolId: this.props.schoolId, 
    notes: notes.value 
    }; 

    notes.value = ""; // Unset the value 
    this.props.onSubmit(details); 
}, 
+0

Danke für die Antwort. Ich habe das versucht, aber der Wert bleibt im Dialog, irgendwelche Ideen? – Bomber

+1

geändert zu '=' und es funktioniert! danke – Bomber

+0

Ja natürlich !! Mein Fehler :) Tippfehler :) Happy Coding .. – teenu