【发布时间】:2021-04-09 10:28:01
【问题描述】:
在 React 中,我试图创建一个表单,其中一些值是可选的。我有以下 TypeScript 界面:
export interface DataModel {
title: string,
count?: number,
}
count 是可选的,但如果已设置,则必须是数字。
我已经像这样设置了我的初始对象:
const INITIAL_VALUE = {
title: "",
count: undefined
}
const dataItem = useState(INITIAL_VALUE);
然后我创建一个表单:
<form onSubmit = { handleSave }>
<input
name = "title"
value = { dataItem.title}
onChange = { handleChange }
type = "text"
placeholder = "Enter title"
/>
<input
name = "count"
value = { dataItem.count}
onChange = { handleChange }
type = "number"
/>
</form>
所以count 输入最初得到的值是undefined,但是当我输入一个值时,我得到了错误:
一个组件正在改变一个不受控制的输入来控制
我可以通过使用一个值对其进行初始化来避免这种情况,但由于它是可选的,我不想这样做。我该如何处理?
【问题讨论】:
标签: reactjs typescript controlled-component