2017-04-18 80 views
3

我是新來的反應,無法把握bsClass和className之間的概念。使用bsClass和className與react-bootstrap有什麼區別?

我嘗試實施經修改的按鈕樣式,如:

<Button bsClass="btn-custom" >Custom button</Button>

在那裏,當我與className替代bsClass不起作用。

但在其他部分,使用相同的custom.css源,我實現:

<img src={logo} alt="logo" className="app-logo" />和它的作品。

+0

檢查'按鈕文檔'組件。 – zerkms

+2

bsClass是預定義的。它有自己的風格注入組件。而className需要你定義你的css才能工作 –

+0

好的。謝謝你們兩位。現在我理解了「Base CSS類和組件的前綴」這個句子的上下文,通常應該只改變bsClass爲組件提供新的,非Bootstrap,CSS樣式「 –

回答

5

JSX屬性className相當於HTML class。所以下面的JSX

按bsClass在

<Button bsClass="btn-custom" >Custom button</Button> 

prop正在被傳遞給Button被認爲

<span className="app-logo">Logo</span> 

將是等效於HTML下面

<span class="app-logo">Logo</span> 

這是它將用於設置className在組件內部的東西,比如

<button className={this.props.bsClass}>{this.props.children}</button> 

因此它是由react-bootstrap文檔定義爲屬性的屬性。

1

React的className完全等同於CSS中的常規類。

HTML/CSS:

<div class='red-text'> 
    Foo 
</div> 

反應,和/ JSX:

<div className='red-text'> 
    Foo 
</div> 

上面的代碼片段做同樣的事情。我們堅持在React中使用className(而不是class)的唯一原因是因爲「class」已被作爲JavaScript中的保留關鍵字。

正如其他人所說的,bsClass是react-bootstrap包中的一個預定義的類。就像Bootstrap的CSS版本帶有自己的樣式一樣,反應引導也是如此。

0

實際區別。我把bsClass設置爲REACT-Bootstrap默認的東西以外的其他東西,你必須做你自己的CSS按鈕主題。

通過添加的className =「XX」你仍然得到默認的主題,但是您現在可以添加CSS樣式顏色,填充等,使用自己的CSS

.xx { 
     magin-bottom: 2px 
} 
相關問題