reactJS | antd |在选择下拉菜单后在重新呈现页面上保持选择时面临问题-这会触发调度
我试图在选择一个组件时发送一个操作,以填充另一个下拉列表。我使用onSelect事件处理程序来实现这一点,而不是使用antd的onfeldschange选项,因为我需要使用onfeldschange回调范围中不可用的局部变量 但结果是-在调用dispatch并重新呈现组件后,dropdown元素将清除其选定值,并重置为其初始值。我无法保留所选内容。下面是代码片段-reactJS | antd |在选择下拉菜单后在重新呈现页面上保持选择时面临问题-这会触发调度,reactjs,typescript,react-redux,antd,Reactjs,Typescript,React Redux,Antd,我试图在选择一个组件时发送一个操作,以填充另一个下拉列表。我使用onSelect事件处理程序来实现这一点,而不是使用antd的onfeldschange选项,因为我需要使用onfeldschange回调范围中不可用的局部变量 但结果是-在调用dispatch并重新呈现组件后,dropdown元素将清除其选定值,并重置为其初始值。我无法保留所选内容。下面是代码片段- {getFieldDecorator(item.id{ 规则:[ {必需:必需,消息:errorText}, ], initia
{getFieldDecorator(item.id{
规则:[
{必需:必需,消息:errorText},
],
initialValue:initVal,
触发器:“onSelect”,
})(
{options}
)}
通过“下拉列表元素清除其选定值”,您是指原始下拉列表还是新下拉列表(正在填充的下拉列表?)
我认为你不需要这样做
this.props.form.setFields({
[item.id]: {
value: val,
},
});
由于它是由antd处理的,请参见此示例
导出默认类UserRemoteSelect扩展组件{
静态类型={
fetchType:PropTypes.string,
标记:PropTypes.string,
defaultValue:PropTypes.object,
onSelect:PropTypes.func,
selectedValue:PropTypes.string
}
异步组件didmount(){
this.fetchOptions()
}
状态={
数据:[],
抓取:对
};
fetchOptions=async()=>{
if(!this.state.data.length){
const{fetchType,token}=this.props
const header={Authorization:`Bearer${token}}}
const route=getLocationRoute(fetchType)
const response=await RequestObject.GetRequest(路由,{},头)
this.setState({data:response.data,fetching:false})
}
};
渲染(){
const{fetching,data}=this.state
const{fetchType,onSelect,selectedValue}=this.props
const id=`${fetchType}\u id`
const val=`${fetchType}\u name`
返回(
option.props.children.toLowerCase().indexOf(input.toLowerCase())>=0
}
defaultValue={selectedValue}
onChange={onSelect}
样式={{width:'100%}
>
{data.map(d=>(
{d[val]}
))}
)
}
}
//在主窗体中使用上述组件,如下所示
getFieldDecorator('parentId'{
规则:[{required:true,消息:`请输入${selectFetchType}name`}],
初始值:“”
})(
)
我所说的“下拉元素清除其选定值”是指原始选择被清除。。如果选择了单个下拉列表,则问题不会出现。当我在选择上调度一个操作时,选择被清除,这将导致组件重新呈现(这将清除所选值)。创建一个演示项目怎么样