作者:风桥残岸_476 | 来源:互联网 | 2023-08-23 20:58
源码
https://stackblitz.com/edit/r...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| class App extends Component { constructor() { super(); this.state = { name: 'React', checked:false, }; this.handleChange=this.handleChange.bind(this) } handleChange(event){ this.setState({ checked:event.target.checked }) } render() { return ( ); } } |
在线演示(支持DevTool)
https://react-as5oze.stackbli...
问题是这样的:
- 如果
一开始是true(蓝色背景),那么我点一下勾选框(this.state.checked为false了),再点一下
按钮,它又变成了蓝色
- 如果
一开始是false(红色背景),那么我点一下勾选框(this.state.checked为false了),再点一下
按钮,它又变成了红色
按钮的功能就是将checked设为undefined,请问这个按钮为什么会出现上述这种看起来像'复原'的功能
补充(我实际遇到的问题):
一个设置页,如果用户点击取消则将所有checkbox复原,经过排查发现再复原方法中漏了一个state字段(这就导致这个字段在复原时设为undefined),但是从界面上却是正常效果