Ввод списка передачи React MUI
React MUI — это библиотека пользовательского интерфейса, которая предоставляет полностью загруженные компоненты, привнося нашу собственную систему дизайна в наши готовые к производству компоненты. MUI — это библиотека пользовательского интерфейса, которая предоставляет предопределенные и настраиваемые компоненты React для более быстрой и простой веб-разработки. Эти компоненты Material-UI основаны на Material Design от Google.
В этой статье мы обсудим ввод списка передачи React MUI. Список передачи или челнок, который позволяет пользователю перемещать один или несколько элементов списка между списками.
Реагировать на реквизиты флажка MUI:
- проверено: определяет, проверен ли компонент.
- checkedIcon: обозначает значок, отображаемый при проверке компонента.
- классы: обозначает стили, которые переопределяют стили по умолчанию.
- цвет: обозначает цвет компонента.
- defaultChecked: определяет, проверяется ли компонент по умолчанию.
- disabled: определяет, отключен ли компонент.
- disableRipple: определяет, отключен ли волновой эффект на компоненте.
- значок: обозначает значок, отображаемый, когда компонент не отмечен.
- id: обозначает идентификатор входного элемента.
- неопределенный: определяет, находится ли компонент в неопределенном состоянии.
- indeterminateIcon: обозначает значок, отображаемый, когда компонент находится в неопределенном состоянии.
- inputProps: обозначает список атрибутов, применяемых к элементу ввода.
- inputRef: обозначает ссылку, которая передается элементу ввода.
- onChange: обозначает функцию обратного вызова, которая запускается при изменении состояния флажка.
- required: определяет, требуется ли входной элемент.
- size: Обозначает размер компонента.
- sx: обозначает системную поддержку, которая позволяет определять системные переопределения, а также дополнительные стили CSS.
- value: Обозначает значение компонента.
Реагируйте на реквизиты списка MUI:
- Children: используется для установки содержимого компонента.
- классы: это переопределяет существующие стили или добавляет новые стили к компоненту.
- компонент: используется для доступа к корневому узлу.
- плотности: если установлено значение true, отступы содержимого уменьшаются, а дочерние элементы кажутся ближе. Значение по умолчанию неверно.
- disablePadding: если установлено значение true, вертикальное заполнение удаляется из списка. Значение по умолчанию неверно.
- subheader: содержимое подзаголовка, часто это ListSubheader.
- sx: системная поддержка позволяет определять системные переопределения, а также дополнительные стили CSS.
Реагировать на MUI ListItem Props:
- классы: это переопределяет существующие стили или добавляет новые стили к компоненту.
- alignItems: указывает свойство стиля align-items. Значение по умолчанию — центр.
- autoFocus: если установлено значение true, элемент списка фокусируется во время первого монтирования.
- дочерние элементы: содержимое компонента.
- компонент: это компонент, используемый для корневого узла.
- компоненты: это компоненты, используемые для каждого слота внутри InputBase.
- componentProps: реквизиты, используемые для каждого слота внутри Input.
- плотности: если установлено значение true, используется компактный вертикальный отступ, предназначенный для ввода с клавиатуры и мыши.
- disabled: если установлено значение true, компонент отключен. По умолчанию установлено значение false.
- disableGutters: если установлено значение true, левое и правое заполнение удаляются.
- disablePadding: если установлено значение true, все отступы удаляются.
- делитель: если установлено значение true, светлая рамка толщиной 1 пиксель добавляется к нижней части элемента списка.
- вторичное действие: это элемент, который будет отображаться в конце списка.
- selected: если установлено значение true, применяется выбранный стиль.
- sx: Системная поддержка позволяет определять системные переопределения, а также дополнительные стили CSS.
- button: если true, элемент списка является кнопкой. Свойства, предназначенные для ButtonBase, затем можно применить к ListItem.
Реквизит кнопки MUI:
- Children: используется для установки содержимого кнопки.
- классы: это переопределение или расширение стилей, применяемых к компоненту.
- размер: используется для настройки размера кнопки.
- disableElevation: это логическое значение, определяющее высоту кнопки.
- fullWidth: это логическое значение, определяющее, покрывает ли оно всю ширину контейнера или нет.
- disabled: это логическое значение для включения или отключения кнопки.
- disableElevation: это логическое значение, включающее или отключающее приподнятый внешний вид кнопки.
- disableFocusRipple: это логическое значение для включения или отключения эффекта пульсации фокуса клавиатуры.
- startIcon: Элемент перед дочерними элементами.
- endIcon: Элемент после дочерних элементов.
- href: его URL-адрес для ссылки при нажатии кнопки.
- цвет: это цвет компонента.
- disableRipple: это логическое значение для отключения или включения волнового эффекта.
Создание проекта React:
Шаг 1: Чтобы создать реагирующее приложение, вам необходимо установить реагирующие модули с помощью команды npm.
npm create-react-app project name
Шаг 2. После создания проекта реакции перейдите в папку для выполнения различных операций.
cd project name
Шаг 3: После создания приложения ReactJS установите необходимый модуль с помощью следующей команды:
npm install @mui/material @emotion/react @emotion/styled
Структура проекта:
Шаг для запуска приложения:
npm start
Пример 1: пример ниже демонстрирует ввод списка передачи React MUI.
Javascript
import React from "react" ; import Grid from "@mui/material/Grid" ; import List from "@mui/material/List" ; import ListItem from "@mui/material/ListItem" ; import ListItemIcon from "@mui/material/ListItemIcon" ; import ListItemText from "@mui/material/ListItemText" ; import Checkbox from "@mui/material/Checkbox" ; import Button from "@mui/material/Button" ; import Paper from "@mui/material/Paper" ; function not(a, b) { return a.filter((value) => b.indexOf(value) === -1); } function intersection(a, b) { return a.filter((value) => b.indexOf(value) !== -1); } function App() { const [checked, setChecked] = React.useState([]); const [left, setLeft] = React.useState([0, 1, 2]); const [right, setRight] = React.useState([3, 4, 5]); const leftChecked = intersection(checked, left); const rightChecked = intersection(checked, right); const handleToggle = (value) => () => { const currentIndex = checked.indexOf(value); const newChecked = [...checked]; if (currentIndex === -1) { newChecked.push(value); } else { newChecked.splice(currentIndex, 1); } setChecked(newChecked); }; const handleAllRight = () => { setRight(right.concat(left)); setLeft([]); }; const handleCheckedRight = () => { setRight(right.concat(leftChecked)); setLeft(not(left, leftChecked)); setChecked(not(checked, leftChecked)); }; const handleCheckedLeft = () => { setLeft(left.concat(rightChecked)); setRight(not(right, rightChecked)); setChecked(not(checked, rightChecked)); }; const handleAllLeft = () => { setLeft(left.concat(right)); setRight([]); }; const customList = (items) => ( <Paper sx={{ width: 200, height: 180, overflow: "auto" }}> <List dense component= "div" role= "list" > {items.map((value) => { const labelId = `transfer-list-item-${value}-label`; return ( <ListItem key={value} role= "listitem" button onClick={handleToggle(value)} > <ListItemIcon> <Checkbox checked={checked.indexOf(value) !== -1} tabIndex={-1} disableRipple color= "success" inputProps={{ "aria-labelledby" : labelId, }} /> </ListItemIcon> <ListItemText id={labelId} primary= {`Item ${value + 1}`} /> </ListItem> ); })} <ListItem /> </List> </Paper> ); return ( <div> <div style={{ textAlign: "center" , color: "green" }}> <h1>GeeksforGeeks</h1> <h2>React MUI Transfer List Input</h2> </div> <div style={{ textAlign: "center" }}> <Grid container spacing={2} justifyContent= "center" alignItems= "center" > <Grid item>{customList(left)}</Grid> <Grid item> <Grid container direction= "column" alignItems= "center" > <Button sx={{ my: 0.5 }} variant= "contained" color= "success" size= "medium" onClick={handleAllRight} disabled={left.length === 0} aria-label= "move all right" > ≫ </Button> <Button sx={{ my: 0.5 }} variant= "outlined" color= "success" size= "medium" onClick={handleCheckedRight} disabled={leftChecked.length === 0} aria-label= "move selected right" > > </Button> <Button sx={{ my: 0.5 }} variant= "outlined" color= "success" size= "medium" onClick={handleCheckedLeft} disabled={rightChecked.length === 0} aria-label= "move selected left" > < </Button> <Button sx={{ my: 0.5 }} variant= "contained" color= "success" size= "medium" onClick={handleAllLeft} disabled={right.length === 0} aria-label= "move all left" > ≪ </Button> </Grid> </Grid> <Grid item>{customList(right)}</Grid> </Grid> </div> </div> ); } export default App; |
Выход:
Пример 2. Пример ниже демонстрирует ввод списка переноса React MUI и отображает количество выбранных вариантов.
Javascript
import React from "react" ; import Grid from "@mui/material/Grid" ; import List from "@mui/material/List" ; import Card from "@mui/material/Card" ; import CardHeader from "@mui/material/CardHeader" ; import ListItem from "@mui/material/ListItem" ; import ListItemText from "@mui/material/ListItemText" ; import ListItemIcon from "@mui/material/ListItemIcon" ; import Checkbox from "@mui/material/Checkbox" ; import Button from "@mui/material/Button" ; import Divider from "@mui/material/Divider" ; function not(a, b) { return a.filter((value) => b.indexOf(value) === -1); } function intersection(a, b) { return a.filter((value) => b.indexOf(value) !== -1); } function union(a, b) { return [...a, ...not(b, a)]; } function App() { const [checked, setChecked] = React.useState([]); const [left, setLeft] = React.useState([0, 1, 2]); const [right, setRight] = React.useState([3, 4, 5]); const leftChecked = intersection(checked, left); const rightChecked = intersection(checked, right); const handleToggle = (value) => () => { const currentIndex = checked.indexOf(value); const newChecked = [...checked]; if (currentIndex === -1) { newChecked.push(value); } else { newChecked.splice(currentIndex, 1); } setChecked(newChecked); }; const numberOfChecked = (items) => intersection(checked, items).length; const handleToggleAll = (items) => () => { if (numberOfChecked(items) === items.length) { setChecked(not(checked, items)); } else { setChecked(union(checked, items)); } }; const handleCheckedRight = () => { setRight(right.concat(leftChecked)); setLeft(not(left, leftChecked)); setChecked(not(checked, leftChecked)); }; const handleCheckedLeft = () => { setLeft(left.concat(rightChecked)); setRight(not(right, rightChecked)); setChecked(not(checked, rightChecked)); }; const customList = (title, items) => ( <Card> <CardHeader sx={{ px: 2, py: 1 }} avatar={ <Checkbox
РЕКОМЕНДУЕМЫЕ СТАТЬИ |