Ich habe React-Bootstrap zu meiner App hinzugefügt. Also ändere ich ein Basisformular mit React-Bootstrap-Komponenten.Wie wird ein React-Bootstrap-Formular nach dem Senden zurückgesetzt?
Ich kann ein Formular nach einem Senden nicht zurücksetzen.
Hier ist meine vereinfachte Code:
import React from 'react';
import { Form, FormGroup, FormControl, ControlLabel, Button } from 'react-bootstrap';
class MyForm extends React.Component {
onSubmit(event) {
event.preventDefault();
const textAreaValue = this.textArea.value;
console.log("textAreaValue : ", textAreaValue);
// some code here...
// ERROR HERE (but it works if I
// replace bootstrap <Form>
// component by a simple <form>
this.messageForm.reset();
}
render() {
return (
<Form
className="form"
ref={ form => this.messageForm = form }
onSubmit={ this.onSubmit.bind(this) }
>
<FormGroup controlId="formControlsTextarea">
<ControlLabel>My Control Label</ControlLabel>
<FormControl
required
inputRef={ input => this.textArea = input }
componentClass="textarea" />
</FormGroup>
<Button type="submit">ok</Button>
</Form>
);
}
}
export default MyForm;
ich ein normales weiterverwenden könnte dann funktioniert es, aber ich frage mich, wie zu verwenden, die eine Komponente von React-Bootstrap.
Hat jemand eine Idee?
Der Fehler:
× TypeError: this.messageForm.reset is not a function
Als ich log this.messageForm es ein Reaktivierungs Bootstrap-Komponente. Ich habe auch mit inputRef
statt ref
getestet, aber es funktioniert nicht
Wenn Sie auf die Dokumentation schauen - das Reagieren-bootstrap '
Sie haben Recht, aber ich dachte, es könnte das native HTML 5 Formular Verhalten reproduzieren. Vor allem, weil es ein Formelement im Dom darstellt. Ich meine, es ist schade, dass wir nicht darauf zugreifen konnten. Nun, ich werde die übliche Form Balise verwenden, ich denke, es ist die bessere zu tun – Proustibat
Alles, was Sie gibt, ist eine Layout-Klasse, so dass Sie wirklich nichts vermissen, was Sie nicht selbst auf einer normalen Form tun können! – ajmajmajma