Javascript MaterialUI自动完成-选择选项时避免清除输入文本过滤器

Javascript MaterialUI自动完成-选择选项时避免清除输入文本过滤器,javascript,reactjs,material-ui,Javascript,Reactjs,Material Ui,我已从我的React项目中的MaterialUI导入了Autocomplete组件,并将其用作带有复选框的多选组件: 我注意到,当我在输入中键入以过滤列表,然后选择一个值时,用户插入的过滤器将重置。我希望避免这种情况,并继续使用过滤器进行多重选择,而不是每次都重新插入过滤器。我在组件API中没有找到解决这个问题的道具 有什么建议吗 这是我的组件代码: const VirtualAutocomplete = (props) => { const classes = useStyles

我已从我的React项目中的MaterialUI导入了Autocomplete组件,并将其用作带有复选框的多选组件:

我注意到,当我在输入中键入以过滤列表,然后选择一个值时,用户插入的过滤器将重置。我希望避免这种情况,并继续使用过滤器进行多重选择,而不是每次都重新插入过滤器。我在组件API中没有找到解决这个问题的道具

有什么建议吗

这是我的组件代码:

const VirtualAutocomplete = (props) => {
    const classes = useStyles();
    const textClasses = textStyles();

    return (
        <Autocomplete
            id={props.id}
            style={{ width: 'auto' }}
            value={props.value}
            limitTags={4}
            noOptionsText="No records found."
            classes={classes}
            disableCloseOnSelect
            ListboxComponent={ListboxComponent}
            renderGroup={renderGroup}
            onChange={props.onChange}
            options={props.options}
            filterOptions={startsWith}
            multiple={props.multiple}
            renderInput={(params) =>
                <ThemeProvider theme={theme}>
                    <TextField {...params}
                        variant='outlined'
                        classes={{ root: textClasses.formControlRoot }}
                        InputLabelProps={{ classes: { root: textClasses.labelRoot } }}
                        label={props.label}
                    />
                </ThemeProvider>
            }
            renderOption={(option, { selected }) => (
                <Fragment>
                    <Checkbox
                        icon={icon}
                        checkedIcon={checkedIcon}
                        style={{ marginRight: 8 }}
                        checked={selected}
                    />
                    {option}
                </Fragment>
            )}
        />
    );
}
const VirtualAutocomplete=(道具)=>{
const classes=useStyles();
const textClasses=textStyles();
返回(
}
渲染={(选项,{selected})=>(
{option}
)}
/>
);
}

创建一个保存输入值的状态。然后在
TextField onChange
上传递函数以更改此状态。然后在
Autocomplete
上传递带有该状态内容的道具
inputValue
。您还可以使用
disableCloseOnSelect
props来
Autocomplete
,使选项框在选中选项时不会关闭

看看他们关于这些道具的文档


下面是一个使用他们的演示的示例:

您是否能够在中重现问题的工作示例?如果您想将其用作可搜索选择,则可能的改进是清除模糊上的输入值。然后,搜索字符串不会留在您的选择旁边。