React js Typescript“字符串”类型的参数不可分配给“SetStateAction <number>”类型的参数

7 typescript reactjs tsx

你好我遇到这个错误:

Argument of type 'string' is not assignable to parameter of type 'SetStateAction<number>'.
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一部分:

.
.
.
const[ idPadre, setIdPadre ] = useState<number>(0);
.
.
.

<select 
       onChange={ (e) => setIdPadre( e.target.value ) }
       value={ idPadre }
>
<option value="">Select...</option>
       {data.map((item) => {
                            return <option key={item.id}
                                    value={ item.id }
                            >{item.description}</option>
                            })}                                
</select>
Run Code Online (Sandbox Code Playgroud)

所以,我从文件 json 添加数据,我希望选择一个项目并获取 id 值。

Val*_*Val 11

该错误非常具有描述性。您无法将类型参数传递string到需要数字的 useState 挂钩中。

您正在使用变量(一个字符串)调用setIdPadre钩子。e.target.value

您可以做的是将值转换为数字:

{ (e) => setIdPadre( parseInt(e.target.value) ) }
Run Code Online (Sandbox Code Playgroud)