使用 MUI 动态绘制多个边框

Dynamically drawing multiple borders with MUI

我正在使用 React 17 和 MUI 5.6。我有一个组件需要根据用户输入向父容器添加新边框。我找到了一些非 MUI CSS tutorials 来实现我想要的,但它们的边框是静态编码在 CSS 中的,而不是根据用户需求添加的。

Here's a working sandbox 为一个边框。非常感谢有关如何支持多边界的任何帮助。

这应该有助于解决您的问题。这是工作代码,用户可以使用按钮决定颜色,但您也可以使用下拉选项实现相同的解决方案。 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>
      );
    }