Ich kann nicht herausfinden, warum meine handleDelete
Funktion nicht ausgeführt wird. Wenn ich auf "Löschen" klicke, passiert gar nichts.Schaltfläche funktioniert nicht in React
In Dev-Tools sehe ich den Wert für die Schaltfläche zum Löschen ist korrekt, aber onClick
mit seinen Attributen wird überhaupt nicht angezeigt.
var MainContainer = React.createClass({
getInitialState: function(){
return {
name: 'JK_MNO',
friends: [], //friends is items
text: ''
}
},
handleChange: function(e){
//like the onChange function
this.setState({
text: e.target.value
});
},
handleSubmit: function(e){
e.preventDefault();
if(this.state.text !== '') {
var nextfriend = this.state.friends.concat([{
text: this.state.text, id: Date.now()
}]);
var nextText = '';
this.setState({
friends: nextfriend, text: nextText
});
}
},
handleDelete: function(e){
console.log(this.state.friends);
this.friends.splice (this.props.friend.id);
this.setState({
friends: friends
});
},
render: function(){
return (
<div>
<h3> Name: {this.state.name} </h3>
<ShowList friends={this.state.friends} />
<form onSubmit={this.handleSubmit} >
Enter Friends: <input className="friendInput" onChange={this.handleChange} value={this.state.text} />
</form>
</div>
);
}
});
var ShowList = React.createClass({
render: function() {
var createFriend = function(friend) {
return (
<li key={friend.id}>{friend.text} <button onClick={this.props.handleDelete} value={friend.id}>Delete</button> </li>
);
};
return <ul>{this.props.friends.map(createFriend.bind(this))}</ul>;
}
});
ReactDOM.render(<MainContainer />, document.getElementById('container'));
https://jsfiddle.net/USERALPHA32/bdc9trux/
stets zusammen mit entsprechendem Code direkt in Ihrer Frage. –
FWIW, der erste Schritt, um dies selbst zu debuggen, wäre gewesen, den Wert von 'this.props.handleDelete' in' StepList' zu prüfen. Du hättest gesehen, dass es "undefiniert" ist. Wenn keine Funktion vorhanden ist, kann natürlich kein Klick aufgerufen werden! Dann hättest du überprüfen sollen, wie die Requisite an "StepList" weitergeleitet wurde, wo du gesehen hättest, dass sie überhaupt nicht passiert ist. –