Динамическое добавление новых параметров в раскрывающийся список с помощью ReactJS

Опубликовано: 7 Августа, 2021

Создание наших собственных параметров в раскрывающемся списке означает, что всякий раз, когда пользователь вводит любое новое значение, кроме значений, показанных в параметрах, это новое значение должно быть добавлено в раскрывающееся меню в качестве параметра. В Material UI для React этот компонент доступен нам, и его очень легко интегрировать.

Создание приложения React и установка модуля:

Шаг 1. Создайте приложение React, используя следующую команду:

 npx создать-реагировать-приложение имя папки

Шаг 2: После создания папки проекта, т.е. имени папки , перейдите в нее с помощью следующей команды:

 cd имя папки

Шаг 3: После создания приложения ReactJS установите модули material-ui, используя следующую команду:

npm install @ material-ui / core
npm install @ material-ui / lab

Структура проекта: это будет выглядеть следующим образом.

Структура проекта

App.js: теперь запишите следующий код в файл App.js. Здесь App - это наш компонент по умолчанию, в котором мы написали наш код.

Javascript




import React from 'react'
import TextField from '@material-ui/core/TextField' ;
import Autocomplete,
{ createFilterOptions } from '@material-ui/lab/Autocomplete' ;
const filter = createFilterOptions();
const App = () => {
// Our sample dropdown options
const options = [ 'One' , 'Two' , 'Three' , 'Four' ]
return (
<div style={{ marginLeft: '40%' , marginTop: '60px' }}>
<h3>Greetings from GeeksforGeeks!</h3>
<Autocomplete
filterOptions={(options, params) => {
const filtered = filter(options, params);
// Suggest the creation of a new value
if (params.inputValue !== '' ) {
filtered.push(`Add "${params.inputValue}" `);
}
return filtered;
}}
selectOnFocus
clearOnBlur
handleHomeEndKeys
options={options}
renderOption={(option) => option}
style={{ width: 300 }}
freeSolo
renderInput={(params) => (
<TextField {...params} label= "Enter Something"
variant= "outlined" />
)}
/>
</div>
);
}
export App default

Шаг для запуска приложения: запустите приложение, используя следующую команду из корневого каталога проекта:

 npm start

Вывод: Теперь откройте браузер и перейдите по адресу http: // localhost: 3000 / , вы увидите следующий вывод:

Доступны все варианты

Теперь, если мы начнем вводить любой другой текст, кроме этих параметров, он покажет функцию Добавить, чтобы добавить параметр, введенный пользователем, как показано ниже:

Добавление новой опции

Примечание. Теперь вы можете обработать этот новый ввод с помощью функции handleChange () и передать его в наш массив параметров в соответствии с потребностями пользователя.