Javascript 为什么赢了';定制输入在Ant设计表单中是否正确控制验证?

Javascript 为什么赢了';定制输入在Ant设计表单中是否正确控制验证?,javascript,reactjs,forms,antd,Javascript,Reactjs,Forms,Antd,我正在使用Ant Design,在表单方面有以下问题 我有一个自定义组件,它用远程获取自动完成建议所需的代码包装antd自动完成: constproductcomplete=()=>{ const[value,setValue]=React.useState(“”) const[options,setOptions]=React.useState([] const onSearch=searchText=>{ 从服务器获取产品(搜索文本) .then(options=>options.map(o

我正在使用Ant Design,在表单方面有以下问题

我有一个自定义组件,它用远程获取自动完成建议所需的代码包装antd自动完成:

constproductcomplete=()=>{
const[value,setValue]=React.useState(“”)
const[options,setOptions]=React.useState([]
const onSearch=searchText=>{
从服务器获取产品(搜索文本)
.then(options=>options.map(o=>({value:o})))
.然后(选项=>设置选项(选项))
}
const onChange=data=>{
设定值(数据)
}
返回(
)
}
但当我以antd形式使用它时:

返回(
当我从外部触发验证时:
let fieldsValue=wait this.formRef.current.validateFields()
表单的行为就像字段中没有任何内容一样,并向用户发出信号,表示根据指定的验证规则需要该字段(即使自动完成中有文本)

但是,如果我将AutoComplete直接连接到持有表单的组件中,而不是将其打包为自己的组件(如上所述),那么它仍然可以正常工作

返回(
this.onSearchProducts(searchText)}
onChange={(值)=>this.onChange(值)}
/>
你知道为什么会这样吗


干杯!

不管我怎么想

不知何故,我没有注意到蚂蚁设计网站上的部分

我只需要向自定义组件传递一个受控的
属性和
onChange
事件,因此:

constproductcomplete=({value='',onChange})=>{
const[products,setProducts]=React.useState([])
const onSearch=searchText=>{
fakeFetch(搜索文本)
.then(options=>options.map(o=>({value:o})))
.然后(选项=>setProducts(选项))
}
常量handleChange=(值)=>{
if(onChange){
onChange(值)
}
}
返回(
)
}
现在很好,很明显


干杯

谢谢。对于尝试使用类似“自动完成”的方式实现此功能并上传的用户,您可以在“删除”操作中将该值设置为“未定义”。