反应-选择多个按住Shift键的复选框

时间:2019-01-03 09:13:20

标签: reactjs checkboxlist shift

我的React App中有一个复选框列表。当我按住Shift键并单击一个时,应该选择当前位置和最近的选中位置之间的其他位置。

目前,我正尝试执行以下操作:

<input onChange={(e)=>this.handleCheckbox(e)} value={id} checked={this.state.selected.IndexOf(id) > -1} type="checkbox" />

handleCheckbox(e){
  if(e.shiftKey){
    console.log("shiftKey is hold")
  }
  //here goes some logic to save checkboxes in the state
}

但是条件if(e.shiftKey)从未执行。我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

松开键后会触发

onChange。您应该使用onKeyDown事件。

答案 1 :(得分:0)

仅适用于遇到此问题的其他人...要检查是否按下Shift键,请执行e.nativeEvent.shiftKey。希望这可以帮助。您仍然必须实现用于实际选中框的逻辑。如果您需要帮助,请告诉我。