Supprimer la puce dans React js Material-ui
Sep 20 2020
J'ai travaillé avec react-js et Material-ui chip, j'ai ajouté de nombreuses puces et puis une puce apparaît avec le texte. Je veux avoir la fonctionnalité pour supprimer la puce. mais je ne sais pas comment le supprimer.
comment puis-je le supprimer avec onDelete={}?
voici juste une partie de mon code:
import React, { useEffect, useState, Component } from 'react'
import Chip from '@material-ui/core/Chip'
const useStyles = makeStyles(theme => ({
root: {
display: 'flex'
},
chip: {
backgroundColor: '#104d56'
},
}))
const handleDelete = () => {
console.log(hashtag);
};
const studentlist = []
function ResponsiveDrawer(props) {
{
namefamily.map((item, index) => {
if (index + 1 > namefamily.length - gpcapacity) {
if (showstu == item[2]) {
studentlist.push(
<Chip
key={item[2]}
className={classes.chip}
clickable={false}
variant="outlined"
label={
<Typography variant="caption" color="textSecondary">
{item[0]} {item[1]}
</Typography>
}
onDelete={handele}
icon={<FaceIcon />}
/>
)
} else
studentlist.push(
<Chip
key={item[2]}
variant="outlined"
clickable={true}
label={
<Typography variant="caption" color="textSecondary">
{item[0]} {item[1]}
</Typography>
}
icon={<FaceIcon />}
/>
)
}
})
}
}
que sera l'intérieur de handleDelete()Function?
Réponses
1 PrasadPhule Sep 20 2020 at 19:15
Selon ma compréhension
namefamilyest un tableau de tableau ie[['a','b','c'],['x','y','z']]- vous voulez sauter des puces d'étudiants en utilisant la
if (index + 1 > namefamily.length - gpcapacity) {condition - autoriser la suppression de puces pour l'
showstuélève utilisant lashowstu == item[2]condition
Ans: Vous ResponsiveDrawerressemblez à
voir mon commentaire dans le code pour plus de détails.
const ResponsiveDrawer = () => {
//considering you are getting showstu and gpcapacity as props or from somewhere
const classes = useStyles();
// point 2. you can skip here instead of checking if everytime
const [chipData, setChipData] = React.useState(
namefamily.slice(0, ((namefamily.length - 2) - gpcapacity))
);
const handleDelete = (chipToDelete) => {
setChipData((chips) => chips.filter((chip) => chip[2] !== chipToDelete));
};
return (
chipData.map((item, index) => {
let chipProps = { clickable:true };
//point 3. allowing delete to those who is {showstu}
if (showstu == item[2]) {
chipProps.onDelete = () => handleDelete(item[2]);
chipProps.className = classes.chip;
chipProps.clickable = false;
}
return (
<Chip
//for key better to use index as a unique
key={index}
// this is spread operator (https://reactjs.org/docs/jsx-in-depth.html#spread-attributes)
{...chipProps}
variant="outlined"
label={
<Typography variant="caption" color="textSecondary">
{item[0]} {item[1]}
</Typography>
}
icon={<FaceIcon />}
/>
);
})
);
}