我收到无法解决的警告:
标签上的道具
value
的值无效。要么将其从 元素,或传递字符串或数字值以将其保留在DOM中。 详情
以下是我正在使用的代码:
<FormItem validateStatus={NameError ? "error" : ""} help={NameError || ""}>
{getFieldDecorator("Name", {
initialValue: (()=>{this.state.Data.Name}),
rules: [{ required: true, message: "Please input the component name!" }]
})(
<Input
className="form-control"
type="text"
name="Name"
defaultValue={this.state.Data.Name}
onChange={this.onChange}
/>
)}
</FormItem>
我的打字稿界面看起来像这样:
export interface IFieldEdition{
Data:IFieldData
}
export interface IFieldData{
Id?:number,
Name?:string,
Value?:string,
Description?:string,
CreatedDate?:Date,
CreatedBy?:string,
StatusId?: number
}
我该如何解决?有任何线索吗?
答案 0 :(得分:4)
我看到您正在使用antd表单。来自antd形式的official document
由getFieldDecorator包装后,值(或由 valuePropName)onChange(或触发器定义的其他属性)道具 将添加到表单控件中,将处理表单数据流 按表格将导致:
您不应该手动调用setState,请使用 this.props.form.setFieldsValue以编程方式更改值。
您使用initialValue: (()=>{this.state.Data.Name}
调用setState可能是导致此错误的原因。
答案 1 :(得分:2)
不确定<IS_HOME>/repository/conf/identity/identity.xml
<IS_HOME>/repository/deployment/server/eventpublishers/IsAnalytics-Publisher-wso2event-*
的工作方式,但似乎是问题出在,您正在传递作为getFieldDecorator
道具的函数。
尝试将initialValue
替换为initialValue: (()=>{this.state.Data.Name})
答案 2 :(得分:0)
使用输入创建表单时,我已经看到此错误,对于我来说,解决方案非常简单:
<input
type="text"
value={this.state.term}
onChange={(e) => this.setState({ term: e.target.value.toLocaleUpperCase() })}
/>
发生了什么事,我只是忘记了调用该方法,却像这样:
toLocaleUpperCase
因此,不要忘记任何函数调用末尾的括号。希望这会有所帮助。