【发布时间】:2018-04-20 12:56:30
【问题描述】:
为了尽量保持 React 代码的可重用性,我经常将 CSS 类作为 React 组件中的属性传递。这样做的用例是这些组件的功能完全相同,但根据它们在页面中的位置可能看起来不同。
是否可以将 CSS 类作为属性传递给 React 组件,或者是否有更好的方法来完成上述用例?
快速、简化的示例:
const ToolTipButton = ({ buttonClass, onButtonClick, children }) => (
<button
className={buttonClass}
onClick={onButtonClick}
data-toggle="pages-tooltip"
data-placement="top"
title="Do Something"
>
{children}
</button>
);
<ToolTipButton buttonClass={'ButtonClass1'} onButtonClick={this.doesSomething}/>
<ToolTipButton buttonClass={'ButtonClass2'} onButtonClick={this.doesSomething}>
// Text and other stuff
</ToolTipButton>
【问题讨论】:
-
Styled Components 采用了类似的方法。我建议检查一下。
-
几乎所有已构建的组件,无论是语义、引导程序等...通常都有一个组件接受的 className 属性。
标签: javascript css reactjs twitter-bootstrap-3 components