suchen

Heim  >  Fragen und Antworten  >  Hauptteil

React-Komponentenbibliothek + SASS-Modularität

Ich habe mit der Entwicklung einer React-Komponentenbibliothek begonnen und wollte einen Teil des SCSS-Codes wiederverwenden, den wir mit anderen Nicht-React-Projekten geteilt haben.

Um dies zu erreichen, habe ich versucht, SASS-Module in einer React-Komponente zu verwenden.

Ein einfacher Anwendungsfall funktioniert gut, aber ich erstelle eine Komponentenbibliothek und benötige mehrere Stilkombinationen für bestimmte Komponenten wie Schaltflächen.

Jetzt bin ich auf den Button 组件的问题。组件非常简单,但它有 3 个不同的 variant-Wert gestoßen.

Dies ist die Button.tsx-Datei:

import React from "react";
import styles from "./Button.module.scss";

type Variant = "default" | "primary" | "tertiary";

interface Props {
  children: String;
  variant: Variant;
}

export const Button: React.FC<Props> = ({ children, variant }) => {
  return <button className={`${styles.button} ${variant}`}>{children}</button>;
};

Dies ist die Button.module.scss-Datei:

.button {
  border: none;
  padding: 0.5rem 1.5rem;
  border-radius: 0.25rem;
  background-color: grey;
  color: white;

  &.default {
    background-color: green;
  }
  &.primary {
    background-color: red;
  }
}

Was ich erwartet habe, ist, dass es, wenn ich eine Komponente wie <Buttonvariant="default">I'm green</Button> verwende, einen grünen Knopf geben würde, aber was ich bekomme, ist ein grauer Knopf.

Dies ist ein Beispiel für Codesandbox

Ich stecke bei diesem Problem fest. Kann mir jemand helfen, je nach Requisitenwert verschiedene Stile anzuwenden?

P粉818306280P粉818306280272 Tage vor425

Antworte allen(2)Ich werde antworten

  • P粉504080992

    P粉5040809922024-03-27 20:07:46

    请使用 classnames npm 库。

    import cn from 'classnames';
    
    

    Antwort
    0
  • P粉244155277

    P粉2441552772024-03-27 19:59:53

    Antwort
    0
  • StornierenAntwort