首页 > 解决方案 > “any”类型的参数不可分配给“never”类型的参数。ts(2345)

问题描述

const [files, setFiles] = useState([])
const handleChange = (event: any) => {
    setFiles.push(event.target.files[0].name)

    return (<div>
        {files.map((file: any) => (
            <p>Hello!</p>
        ))}
        </div>)

}

单击按钮时,我试图将一个值推入我的状态,然后映射到我的状态以呈现 p 元素,但是我收到错误“'any' 类型的参数不可分配给'never' 类型的参数.ts(2345)" 当我尝试推入 setFiles 时。

标签: reactjstypescript

解决方案


您还需要使用以下命令对文件状态进行类型转换any

const [files, setFiles] = useState([] as any)

另外,这行代码是错误的:

setFiles.push(event.target.files[0].name)

setFiles是你知道的功能。

你应该使用:

setFiles(files.push(event.target.files[0].name))

但是反应状态是不可变的。因此,您可以使用扩展运算符,例如:

setFiles([...files, event.target.files[0].name])

推荐阅读