Ich habe eine Komponente mit einer einfachen Button-Handler-Methode. Wenn ich den onClick
Handler this
im Konstruktor nicht binden (oder inline auf den onClick
selbst), dann bekomme ich einen Fehler, da der Kontext der handleAdd
Methode nicht der Fall ist, wo Zustand meiner Komponente ist ...Muss ich Event-Handler mit TypeScript + React an `this` binden?
Ich verstehe, wie die bind
funktioniert, aber gibt es eine Problemumgehung um zu vermeiden, bind
überall mit TypeScript + React zu verwenden?
export class TodoList extends React.Component<ITodoListProps, Partial<ITodoListState>> {
constructor(props: ITodoListProps) {
super(props);
this.state = { items: props.items };
this.handleAdd.bind(this);
}
public render() {
return (
<div>
<button onClick={this.handleAdd}>Add</button>
<ul>
{this.state.items.map((todo, i) => {
return <TodoItem key={i} name={todo.name} />
})}
</ul>
</div>
);
}
handleAdd(e: any) {
this.setState({
items: [...this.state.items, { name: "foo" }]
});
}
}
Warum lehnt jemand diese ab? Hinterlasse einen Kommentar, damit wir die Qualität verbessern können. – mariocatch
Genau wie YouTube - es gibt immer einen Downvote - egal was. –