我想把新项目推到我的初始状态数组中,使用useState钩子,但我得到错误:TS2322类型号码不能分配给类型'never'。([…pageNumbers, i)下划线
我代码:
const [pageNumbers, setPageNumbers] = useState([]);
for (
let i = 1;
i <= Math.ceil(props.totalCommits / props.CommitsPerPage);
i++
) {
setPageNumbers([...pageNumbers, i]);
}
您需要像这样输入状态数组:
const [pageNumbers, setPageNumbers] = useState<Array<number>>([]);
如果在初始化空数组时不添加<type>
, typescript将假定该类型为React.SetStateAction<never[]>
。因此,当您尝试将let i = 1
,类型number
添加到类型never
中时,typescript抛出错误Type number is not assignable to type 'never'
。
你可以在初始化时指定一个类型来解决这个问题,如下所示。
const [pageNumber, setPageNumbers] = useState<number[]>([]);