【发布时间】:2019-08-02 20:12:01
【问题描述】:
我已经开始使用 React 函数式组件了。我有疑问,如何验证和避免使用错误数据类型的特定状态更新...
我有以下 Hook:
const [apiData, setApiData] = useState({
idProjectHeader: 0,
projectName: "",
isActive: false,
idMethodology: 0,
idUser: 0
});
当我尝试在渲染方法中使用时:
<input
id='methodology'
placeholder='Select a methodology'
value={apiData.idMethodology}
onChange={e => setApiData({ ...apiData, idMethodology: e.target.value })}
/>
但我有以下警告:
"message": "'{ idMethodology: string; idProjectHeader: number; >projectName: string; isActive: boolean; idUser: number; }' 类型的参数不可分配给 >'SetStateActionstring; isActive: boolean; idMethodology: number; idUser: number; }>'.
类型'{ idMethodology:字符串; idProjectHeader:编号;项目名称:字符串; >isActive:布尔值; idUser:号码; }' 不可分配给类型 '{ >idProjectHeader: number;项目名称:字符串; isActive:布尔值; idMethodology:>编号; idUser:号码; }'。
属性“idMethodology”的类型不兼容。
类型 'string' 不能分配给类型 'number'。"
是否存在一种以简单、标准的方式验证这一点的方法?
而且...很抱歉在这里包含这个问题...但是,以这种方式更新状态是否正确?是否存在其他方法?
【问题讨论】:
-
I am not able to reproduce this..你能提供一些显示这个错误的伪代码吗?
-
你使用打字稿?
-
@RichWarrior:是的
标签: reactjs typescript react-hooks