Ich mache eine App in Reactjs mit einer ES6-Klasse für eine Komponente. Der Code funktioniert wie vorgesehen, bis ich eine Funktion innerhalb der Klasse mit Argumenten aufrufen möchte.Wie ruft man eine Funktion mit Argumenten in einer ES6-Klasse auf?
SampleClass.js
class SampleClass extends React.Component {
constructor(props, context) {
super(props, context);
this.state = {
backgroundColor: 'yellow'
}
}
onChangeBackgroundColor(backgroundColor) {
this.setState({
backgroundColor: backgroundColor
})
}
render() {
return <div style={{backgroundColor: this.state.backgroundColor, padding: 10}}>
<span onClick={this.onChangeBackgroundColor.bind(this)} style={{background: 'white'}}>
Change element style
</span>
</div>
}
}
React.render(<SampleClass />, document.getElementById('container'));
Ich bin in der Lage, eine Funktion gut ohne Argumente wie this.onChangeBackgroundColor.bind(this)
zu nennen. Wenn ich versuche, ein Argument an die Funktion zu übergeben, bekomme ich einen Fehler in der Konsole Uncaught TypeError: Cannot read property 'bind' of undefined
.
Ref Geige: https://jsfiddle.net/purezen/s6ap3m8s/3/
Würden Sie bitte ein Beispiel teilen, wo Sie Argumente einschließen? –