我试图在react nect.js中为一个组件添加不同的样式。下面我提到了我的按钮组件的代码import styles from "./button.module.css"; const Button = props =>{ return( <div> <button className={styles.button}>{props.text}</button> </div> ) } export default Button;
我必须在我的网页中使用这个按钮组件两次,但有不同的风格。(例如,我希望第一个组件与蓝色背景和另一个与绿色背景。有人能帮我吗?
import Button from "@/components/button";
function Home() {
return (
<div className="home">
<div className="actions">
<Button className="live" text = "Go Live"/>
<Button className="userAdd" text = "Add users"/>
</div>
</div>
);
}
export default Home;
我尝试为按钮组件添加不同的类名,并为该类添加样式。但没有结果。
2条答案
按热度按时间qgelzfjb1#
有几种方法:
方法一
将颜色作为 prop 传递给
Button
。这里我有一个名为.button
的基类(包含所有类型按钮的填充/边距信息),我将其与Button
组件中的数组中的colour类组合在一起,并将其传递给buttonclassName
属性。注意:如果你的类组合对于数组来说太笨拙,你可以使用
classnames
实用程序库而不是数组。button.modules.css
Button.jsx
方法二
非常相似,但使用
composes
在每个颜色类中使用.button
基类继承其属性。这意味着您不必使用数组来构建className。button.modules.css
Button.jsx
fquxozlt2#
首先,您可以让
Button
组件使用传入的className
prop,并将其添加到基类中。您可以决定是将这些附加类应用于<button>
还是父<div>
。然后,您可以向
button.module.css
添加更多类:最后,在
Home
组件中传递更多的类。