ant design Checkbox获取当前点击的数据

需求场景:多选框,底下的内容根据选择的值来展示,选项值和内容对应
如: 选择A,展示A的内容
    选择B,展示B的内容

所以需要点击选择的时候,知道当前选中的是哪一项

这个是选择组,一开始使用 了CheckboxGroup,但是这个onchange回调拿到的是选择的全部数值,不能知道当前选中的数值

换成普通的 Checkbox
const FormDom = () => {
  const [selectdType, setSelectdType] = useState<any[]>([])

  // 选项变化
  const onChange = (e: any, type: string) => {
    let types = [...selectdType]
    const checked = e.target.checked
    if (checked) {
      if (!selectdType.includes(type)) {
        types.push(type)
      }
    } else {
      types = types.filter(item => item !== type)
    }
    setSelectdType(types)
    console.log(e, type, selectdType)
  }

  return (
    ...
    <Form.Item
      label="要素类型"
      name="issueElementTypes"
      rules={[{ required: true, message: '请选择要素类型' }]}
    >
      // 将对应的value值传递出去,可以写需要的值,如1,2,3等
      <Checkbox onChange={(e) =>onChange(e, 'a')}>a</Checkbox>
      <Checkbox onChange={(e) =>onChange(e, 'b')}>b</Checkbox>
      <Checkbox onChange={(e) =>onChange(e, 'c')}>c</Checkbox>
    </Form.Item>
    ...
    // 内容对应展示
    {selectdType.includes('a') ? <div>
      <h3>a的内容</h3>
    </div> : null}
    {selectdType.includes('b') ? <div>
      <h3>b的内容</h3>
    </div> : null}
    {selectdType.includes('c') ? <div>
      <h3>c的内容</h3>
    </div> : null}
  )

}

打印的内容

posted @ 2021-06-22 11:15  潇湘羽西  阅读(4675)  评论(0编辑  收藏  举报