Динамическое рисование нескольких границ с помощью MUI

Я использую React 17 и MUI 5.6. У меня есть компонент, которому необходимо добавить новые границы в родительский контейнер на основе пользовательского ввода. Я нашел некоторые не-MUI Учебники по CSS для достижения того, что я хочу, но их границы статически закодированы в CSS и не добавляются по запросу пользователя.

Вот рабочая песочница для одной границы. Был бы признателен за любую помощь в том, как поддерживать несколько границ.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
3
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это должно помочь решить вашу проблему. Вот рабочий код, пользователь может выбрать цвет с помощью кнопок, но вы можете реализовать то же решение и с раскрывающимися параметрами. https://codesandbox.io/embed/wonderful-worker-g8fzyi?fontsize=14&hidenavigation=1&theme=dark

import { Box } from "@mui/material";
import Button from "@mui/material/Button";
import { useState } from "react";
import "./styles.css";

    export default function App() {
      const [colors, setColors] = useState([]);
      const [pixel, setPixel] = useState(6);
      const addColor = async (color) => {
        setPixel(pixel + 2);
        let randomColor = `0 0 0 ${pixel}px ${color}`;
        setColors([...colors, randomColor]);
      };
    
      return (
        <div
          style = {{
            width: "100vw",
            height: "100vh",
            display: "flex",
            justifyContent: "center",
            alignItems: "center",
            flexDirection: "column"
          }}
        >
          <Box
            sx = {{
              width: "50%",
              height: "20%",
              border: 3,
              boxShadow: colors.join(",")
            }}
          ></Box>
          <div style = {{ marginTop: 100 }}>
            <Button onClick = {() => addColor("#FFFF00")}>Yellow</Button>
            <Button onClick = {() => addColor("#FF002B")}>Red</Button>
            <Button onClick = {() => addColor("#0000FF")}>Blue</Button>
            <Button onClick = {() => addColor("#2BFF00")}>Green</Button>
          </div>
        </div>
      );
    }

Другие вопросы по теме