cari

Rumah  >  Soal Jawab  >  teks badan

Pustaka komponen bertindak balas + modulariti SASS

Saya mula membangunkan perpustakaan komponen React dan ingin menggunakan semula beberapa kod SCSS yang kami kongsi dengan projek bukan React yang lain.

Untuk mencapai matlamat ini, saya cuba menggunakan modul SASS dalam komponen React.

Kes penggunaan mudah berfungsi dengan baik tetapi saya sedang mencipta pustaka komponen dan saya memerlukan berbilang kombinasi gaya untuk komponen tertentu seperti butang.

Kini, saya menemui nilai Button 组件的问题。组件非常简单,但它有 3 个不同的 variant.

Ini ialah Button.tsx fail:

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>;
};

Ini ialah Button.module.scss fail:

.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;
  }
}

Apa yang saya jangkakan ialah jika saya menggunakan komponen seperti <Buttonvariant="default">I'm green</Button> akan ada butang hijau, tetapi apa yang saya dapat ialah butang kelabu.

Ini adalah contoh pada codesandbox

Saya terperangkap dalam isu ini, bolehkah sesiapa membantu saya menggunakan gaya berbeza berdasarkan nilai prop?

P粉818306280P粉818306280272 hari yang lalu428

membalas semua(2)saya akan balas

  • P粉504080992

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

    Sila gunakan classnames pustaka npm.

    import cn from 'classnames';
    
    

    balas
    0
  • P粉244155277

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

    balas
    0
  • Batalbalas