Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
reactJS | antd |在选择下拉菜单后在重新呈现页面上保持选择时面临问题-这会触发调度_Reactjs_Typescript_React Redux_Antd - Fatal编程技术网

reactJS | antd |在选择下拉菜单后在重新呈现页面上保持选择时面临问题-这会触发调度

reactJS | antd |在选择下拉菜单后在重新呈现页面上保持选择时面临问题-这会触发调度,reactjs,typescript,react-redux,antd,Reactjs,Typescript,React Redux,Antd,我试图在选择一个组件时发送一个操作,以填充另一个下拉列表。我使用onSelect事件处理程序来实现这一点,而不是使用antd的onfeldschange选项,因为我需要使用onfeldschange回调范围中不可用的局部变量 但结果是-在调用dispatch并重新呈现组件后,dropdown元素将清除其选定值,并重置为其初始值。我无法保留所选内容。下面是代码片段- {getFieldDecorator(item.id{ 规则:[ {必需:必需,消息:errorText}, ], initia

我试图在选择一个组件时发送一个操作,以填充另一个下拉列表。我使用onSelect事件处理程序来实现这一点,而不是使用antd的onfeldschange选项,因为我需要使用onfeldschange回调范围中不可用的局部变量

但结果是-在调用dispatch并重新呈现组件后,dropdown元素将清除其选定值,并重置为其初始值。我无法保留所选内容。下面是代码片段-


{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`}],
初始值:“”
})(

)
我所说的“下拉元素清除其选定值”是指原始选择被清除。。如果选择了单个下拉列表,则问题不会出现。当我在选择上调度一个操作时,选择被清除,这将导致组件重新呈现(这将清除所选值)。创建一个演示项目怎么样