我想在antd的开关中使用事件作为回调。我不知道如何使用event来获取this.state.game的值。
handleToggle = event => {
this.setState({
[event.target.name]: !this.state[event.target.name]
});
};
render() {
return(
<Switch
checkedChildren='on'
unCheckedChildren='off'
name='game' value={this.state.game}
onClick={this.handleToggle}
/>
);
}发布于 2019-10-30 14:54:49
Switch onClick签名为:
Function(checked: boolean, event: Event)所以它应该是:
handleToggle = (_, event) => {
this.setState({
[event.target.name]: !this.state[event.target.name]
});
}也就是说,event是第二个参数。
发布于 2019-10-30 14:49:18
您不需要在Switch中添加正确的value。
class App extends Component {
state = {
game: false
};
handleToggle = (checked, event) => {
this.setState({
game: checked
});
};
render() {
const { game } = this.state;
console.log("switch status: ", game);
return (
<div className="App">
<Switch
defaultChecked={false}
checkedChildren="on"
unCheckedChildren="off"
name="game"
onClick={this.handleToggle}
/>
</div>
);
}
}这是一个快速演示code sandbox
https://stackoverflow.com/questions/58619809
复制相似问题