在setState()之后获取状态

luc*_*huy 2 javascript reactjs

我知道setState()不会立即变异this.state.因此,在下面的代码中,单击按钮后总是取消选中复选框.如何解决这个问题?

handleClick = () => {
  this.setState({tick: !this.state.tick})
}

render() {
  return (
    <button type='button' onClick={() => this.handleClick()} >
      <input type="checkbox" value={this.state.tick} />
      Tick here
    </button>
  )
}
Run Code Online (Sandbox Code Playgroud)

ic3*_*3rg 6

checked而不是value:

<input type="checkbox" checked={this.state.tick} />
Run Code Online (Sandbox Code Playgroud)

来自规范:

checked:布尔值; 如果存在,则当前切换复选框

value:如果当前切换复选框,则在提交表单时用作复选框值的字符串

  • 另外,你的onClick可以只是`onClick = {this.handleClick}` (4认同)