【问题标题】:React typescript: Argument of type 'number' is not assignable to parameter of type 'never'反应打字稿:“数字”类型的参数不可分配给“从不”类型的参数
【发布时间】:2021-10-18 11:49:55
【问题描述】:

它是一个创建复选框按钮的 React 组件,我在 onCheckboxBtnClick(1),onCheckboxBtnClick(2) 中遇到此错误...

 const [cSelected, setCSelected] = useState([])
 const [rSelected, setRSelected] = useState<number>()

 const onCheckboxBtnClick = (selected: never) => {
  const index = cSelected.indexOf(selected)
  if (index < 0) {
   cSelected.push(selected)
  } else {
   cSelected.splice(index, 1)
  }
  setCSelected([...cSelected])
 }
 return (
  <div>
   <h5>Checkbox Buttons</h5>
   <ButtonGroup>
    <Button color="primary" onClick={() => onCheckboxBtnClick(1)} active={cSelected.includes(1)}>
     One
    </Button>
    <Button color="primary" onClick={() => onCheckboxBtnClick(2)} active={cSelected.includes(2)}>
     Two
    </Button>
    <Button color="primary" onClick={() => onCheckboxBtnClick(3)} active={cSelected.includes(3)}>
     Three
    </Button>
   </ButtonGroup>
   <p>Selected: {JSON.stringify(cSelected)}</p>
  </div>
 )
}

export default Example

我得到这个错误:Argument of type '1' is not assignable to parameter of type 'SetStateAction&lt;undefined&gt;'. 我该如何解决这个问题?

【问题讨论】:

  • 请分享可重现的例子

标签: javascript reactjs typescript components


【解决方案1】:

我实际上尝试将其复制到 Codesandbox 中,但无法生成您所描述的内容。

你在哪一行得到这个错误?

Codesandbox 供进一步讨论:https://codesandbox.io/s/admiring-shadow-6ec4g?file=/src/App.tsx

【讨论】:

  • 问题已解决,我们应该将数字数组传递给 usestate
猜你喜欢
  • 2016-09-26
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-02
  • 2018-06-13
  • 2017-12-08
  • 2022-01-21
相关资源
最近更新 更多