gpt4 book ai didi

javascript - Material UI Autocomplete - 选择选项时避免清除输入文本过滤器

转载 作者:行者123 更新时间:2023-12-04 12:36:45 26 4
gpt4 key购买 nike

我在我的 React 项目中从 MaterialUI 导入了 Autocomplete 组件,并将其用作带有复选框的多选:https://material-ui.com/components/autocomplete/#checkboxes
我注意到,当我输入输入以过滤列表然后选择一个值时,用户插入的过滤器会重置。我想避免这种情况并继续使用过滤器进行多选,而不是每次都重新插入。我没有在组件 API 中找到任何 Prop 来解决这个问题。
有什么建议吗?
这是我的组件代码:

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>
)}
/>
);
}

最佳答案

创建一个保存输入值的状态。然后在 TextField onChange传递函数来改变这个状态。然后在 Autocomplete传递 Prop inputValue具有该状态内容。您也可以使用disableCloseOnSelect支持 Autocomplete所以选项框不会在选择选项时关闭。
看看他们关于这些 Prop 的文档https://material-ui.com/pt/api/autocomplete/
这是使用他们的演示的示例:https://codesandbox.io/s/material-demo-forked-pdh81?file=/demo.js:746-766

关于javascript - Material UI Autocomplete - 选择选项时避免清除输入文本过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63855410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com