#reactjs #material-ui
Вопрос:
Я хотел бы добавить столбец, например, Заполненное количество
Но я не могу понять, как это сделать из документов, я чувствую, что мне нужно использовать renderCell
при настройке столбца, но я не вижу, как это сделать.
Ответ №1:
Вы можете скопировать визуализатор панели из демо-версии здесь:
const defaultTheme = createTheme();
const useStyles = makeStyles(
(theme) =>
createStyles({
root: {
border: `1px solid ${theme.palette.divider}`,
position: "relative",
overflow: "hidden",
width: "100%",
height: 26,
borderRadius: 2
},
value: {
position: "absolute",
lineHeight: "24px",
width: "100%",
display: "flex",
justifyContent: "center"
},
bar: {
height: "100%",
"amp;.low": {
backgroundColor: "#f44336"
},
"amp;.medium": {
backgroundColor: "#efbb5aa3"
},
"amp;.high": {
backgroundColor: "#088208a3"
}
}
}),
{ defaultTheme }
);
const ProgressBar = React.memo(function ProgressBar(props) {
const { value } = props;
const valueInPercent = value * 100;
const classes = useStyles();
return (
<div className={classes.root}>
<div
className={classes.value}
>{`${valueInPercent.toLocaleString()} %`}</div>
<div
className={clsx(classes.bar, {
low: valueInPercent < 30,
medium: valueInPercent >= 30 amp;amp; valueInPercent <= 70,
high: valueInPercent > 70
})}
style={{ maxWidth: `${valueInPercent}%` }}
/>
</div>
);
});
export function renderProgress(params) {
return <ProgressBar value={Number(params.value)} />;
}
Использование
{
field: "filledQuantity",
headerName: "Filled Quantity",
renderCell: renderProgress,
type: "number",
width: 120
}
Живая демонстрация
Комментарии:
1. Это потрясающе! Но, к сожалению, я не использую машинопись, у вас есть версия javascript?
2. @ecruncher Просто удалите тип, если они вам не нужны. У вас есть какие-то конкретные проблемы? Я скорректировал свой ответ, чтобы использовать JS.
3. ты потрясающая, спасибо тебе за быструю помощь!