I would like not to have the labels of the selected Options in the Input field: It can probably be addressed in the renderInput property but I dont know how. I know there is the limitTags prop but the options would still be displayed in the input field when it is selected. here is an example code:
Any suggestions?
import React from 'react'; import Checkbox from '@material-ui/core/Checkbox'; import TextField from '@material-ui/core/TextField'; import Autocomplete from '@material-ui/lab/Autocomplete'; import CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'; import CheckBoxIcon from '@material-ui/icons/CheckBox'; const icon = <CheckBoxOutlineBlankIcon fontSize="small" />; const checkedIcon = <CheckBoxIcon fontSize="small" />; export default function CheckboxesTags() { return ( <Autocomplete multiple id="checkboxes-tags-demo" options={top100Films} disableCloseOnSelect getOptionLabel={(option) => option.title} renderOption={(option, { selected }) => ( <React.Fragment> <Checkbox icon={icon} checkedIcon={checkedIcon} style={{ marginRight: 8 }} checked={selected} /> {option.title} </React.Fragment> )} style={{ width: 500 }} renderInput={(params) => ( <TextField {...params} variant="outlined" label="Checkboxes" placeholder="Favorites" /> )} /> ); } // Top 100 films as rated by IMDb users. http://www.imdb.com/chart/top const top100Films = [ { title: 'The Shawshank Redemption', year: 1994 }, { title: 'The Godfather', year: 1972 }, { title: 'The Godfather: Part II', year: 1974 }, { title: 'The Dark Knight', year: 2008 }, { title: '12 Angry Men', year: 1957 }, { title: "Schindler's List", year: 1993 }, { title: 'Pulp Fiction', year: 1994 }, { title: 'The Lord of the Rings: The Return of the King', year: 2003 }, { title: 'The Good, the Bad and the Ugly', year: 1966 }, { title: 'Fight Club', year: 1999 }, { title: 'The Lord of the Rings: The Fellowship of the Ring', year: 2001 }, { title: 'Star Wars: Episode V - The Empire Strikes Back', year: 1980 }, { title: 'Forrest Gump', year: 1994 } ];
Advertisement
Answer
Add this prop to your <AutoComplete renderTags={() => null} /> This will make the autoComplete not to render the tags inside of your TextField.