我正在尝试创建一个按钮,它可以在一个按钮上有2个事件,这样我就可以添加和删除一个标记,我可以用jquery来完成但是无法在反应中解决它。
var Button = React.createClass({
getInitialState() {
return {
name: 'add marker'
};
},
render: function() {
return <button type="button" onClick={this.onClick}>{this.state.name}</button>
},
onClick: function(ev) {
// event 1
alert('marker added');
// event 2
alert('remove marker');
this.setState({name:'markert removed'})
}
});
答案 0 :(得分:1)
假设您想使用相同的按钮添加/删除标记,那么您可以执行以下操作:
var Button = React.createClass({
getInitialState() {
return {
marker: false
};
},
onClick: function() {
this.setState({
marker: !this.state.marker
});
},
render: function() {
return <button type="button" onClick={this.onClick}>{this.state.marker ? 'Add marker' : 'Remove marker'}</button>
}
});
存储布尔值并在单击按钮时更新。您可以根据该布尔值管理按钮文本。
答案 1 :(得分:0)
您可以使用event.target
访问该元素,
如果您将按钮的值设置为“添加”或“删除”,您可以通过event.target.value捕获它
代表
handleClick(event) {
let actionType = event.target.value; // 'add' or 'remove', now you can control the flow with switch case or regular if's */
}
render(){
return (<button value='add' onClick={this.handleClick}>{name}</button>)
}