1
handleDelete
기능이 실행되고 있지 않은 이유를 알 수 없습니다. '삭제'를 클릭해도 아무런 변화가 없습니다.버튼이 작동하지 않음
dev 도구에서 나는 삭제 버튼의 값이 정확하다는 것을 알고 있지만 그 속성이 전혀 나타나지 않는 onClick
이 전혀 나타나지 않습니다.
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/
항상 귀하의 질문에 직접 관련 코드를 포함한다. –
FWIW, 이것을 스스로 디버깅하는 첫 번째 단계는'StepList'에서'this.props.handleDelete'의 값을 확인하는 것이 었습니다. 당신은 그것이 '정의되지 않은'것을 보았을 것입니다. 물론 기능이 없으면 클릭 할 때 아무 것도 호출 할 수 없습니다! 그렇다면 소품이 전달되지 않은 것을 보았을 'StepList'로 소품이 어떻게 전달되었는지 확인 했어야합니다. –