请问将select 改成多选,当只选中一项时,无法取消选中,是什么原因呢?

来源:9-6 使用select下拉框组件

flask

2023-03-23

请问将课程中的select 改成多选,当只选中一项时,无法取消选中,是什么原因呢?

我是这样写的

function Select() {
  const [selectList, setSelectList] = useState<string[]>(['北京'])
  function handleChange(e: ChangeEvent<HTMLSelectElement>) {
    if (selectList.includes(e.target.value)) {
      setSelectList(selectList.filter(item => item !== e.target.value))
    } else {
      setSelectList([...selectList, e.target.value])
    }
  }
  return (
    <div>
      <select
        onChange={e => handleChange(e)}
        value={selectList}
        multiple
      >
        <option>北京</option>
        <option>上海</option>
        <option>杭州</option>
        <option>深圳</option>
      </select>
    </div>
  )
}

当只选中 北京 时,点击 北京 无法取消,点击没有触发 onChange 事件

写回答

1回答

Etcetera

2023-03-24

只有一个被选中时你点击那个元素是不会触发ChangeEvent的

0
5
flask
回复
Etcetera
我知道,上面代码改如何改造呢?
2023-03-27
共5条回复

React18+ Nest.js 全栈开发仿问卷星项目

React18+TS4+Antd5+Next.js13 ,B端+C 端,完整业务

383 学习 · 252 问题

查看课程