In einer UI-Bibliothek habe ich eine Checkbox-Klasse, die dem Benutzer erlaubt, eine input [type = Checkbox] zu einem Formular hinzuzufügen, es Stile und fügt zusätzliche Funktionalität:Überschreiben synthetische Ereignisse aus einer Komponente
export class Checkbox extends React.Component({
render() {
return(
<div className="form-component">
<input type="checkbox"
defaultChecked={this.props.value}
checked={this.props.value}
name={this.props.name} />
<label>{this.props.label}</label>
</div>
)
}
});
Der Änderungshandler wird auf Formularebene ausgeführt.
export class Page extends React.Component({
handleChange(event) {
let state = {};
state[event.target.name] = event.target.value;
this.setState(state);
}
render() {
<form onChange={this.handleChange}>
<Input value={this.state.value} name="input1" />
<Checkbox value={this.state.value} name="checkbox1" />
</form>
}
})
Das synthetische Änderungsereignis von dem Eingang liefert ein Ereignisobjekt mit event.target.name
und event.target.value
. Die Checkbox hat stattdessen event.target.checked
. Im Handle-Change-Event kann ich sehen, welche Art von Element es entsprechend wählt.
Aber gibt es eine Möglichkeit für mich, das Ereignis zu überschreiben, das von der Checkbox-Komponente ausgegeben wird, so dass event.target.value === event.target.checked
?