我是一个Reactjs开发人员,我正在学习typescript,我正在做这个项目与电影应用程序接口,所以对于我来说,能够构建到网站的搜索功能,我需要e.target.value,但typescript给我的错误,我不明白。因此,我将发布我的代码,并提前感谢您!
App.tsx
const [search, setSearch] = useState<iMovies['movie']>([])
const onChange = (e: React.ChangeEvent<HTMLInputElement>, value: any): void => {
e.preventDefault()
setSearch(e.target.value)
}
接下来,我将获取api并使用search
状态/值将其放入api中,以便应用程序知道要搜索什么。
这就是错误
发布于 2021-11-05 03:10:12
我认为问题出在对React.useState
钩子的误解上,而不一定是在onChange
函数中使用e.target.value
。
React.useState
持有IMovies['movie']
的类型,它似乎是
type IMovies['movie'] = Array<{
id: number;
original_title: string;
overview: string;
poster_path: string;
background_path: string;
}>;
您遇到了一个问题,比如试图将integer
值放入string
类型的变量中
const num: number = 'hello world!'; // ERROR: type string is not assignable to number
e.target.value
的类型为string
,并且不适合使用上述类型的React.useState
的形状。
您应该更改React.useState
以将string
值保持在查询的状态中,或者应该在onChange
函数中找到一种方法,将e.target.value
转换为与当前React.useState
匹配的类型。
https://stackoverflow.com/questions/69847468
复制相似问题