I was catching an input value in event handler like below:
import React from 'react';
export class Newsletter extends React.Component {
handleClick(event) {
let newsletterId = event.target.value;
console.log(newsletterId);
}
constructor(props) {
super(props);
this.state = {
newsletter: this.props.newsletter,
}
}
render() {
return (
<div className="col-sm-4 col-xs-12">
<button onClick={this.handleClick.bind(this)}
value={this.state.newsletter.pk}>
<span className="fa fa-arrow-right"></span>
</button>
</div>
)
}
}
This was behaving strangely. Target value sometimes become undefined
. Sometimes I was getting the correct newsletterId
and sometimes I was getting undefined
. See the screenshot below:
Then I changed event.target.value
to event.currentTarget.value
. Now it is working smoothly.
So, the question arose, What's the difference between event.target.value
and event.currentTarget.value
in this scenario?