【发布时间】:2021-05-08 07:18:40
【问题描述】:
我正在使用 Material UI 的 Autocomplete 组件并启用了多个选项。我需要能够选择多个选项并在每次值更改时更新状态。为此,我使用了 onChange 道具。当只使用一个选项时,这很好用。但是启用多个选项后,每次我选择一个选项时,组件都会重新渲染,我无法选择第二个选项。
这是onChange 处理程序:
const handleUserAssignEvent = (event, value) => {
setSelectedUsers(value)
}
这是Autocomplete 组件:
const renderUserAssignmentForm = () => {
const icon = <CheckBoxOutlineBlankIcon fontSize="small" />
const checkedIcon = <CheckBoxIcon fontSize="small" />
return (
<Autocomplete
multiple
id="usersList"
options={filteredUsers ?? users ?? []}
noOptionsText="No users found..."
disableCloseOnSelect
onChange={(event, value) => handleUserAssignEvent(event, value)}
getOptionLabel={(option) => option.fullname}
renderOption={(option, { selected }) => (
<>
<Checkbox
icon={icon}
checkedIcon={checkedIcon}
style={{ marginRight: 8 }}
checked={selected}
/>
{option.fullname}
</>
)}
style={{ width: 500 }}
renderInput={(params) => (
<TextField
{...params}
variant="outlined"
label="Users"
placeholder="User lookup..."
/>
)}
/>
)}
我可以做些什么来更新状态而不让自动完成组件在每次更改时重新呈现并且能够选择多个选项?
【问题讨论】:
标签: reactjs autocomplete material-ui