2017-09-04 61 views
1

比方說,我有一個簡單的組件是這樣的:是否可以在自定義反應組件上設置className?

class SimpleComponent extends React.Component 
{ 
    render() { return <p>Some text</p> } 
} 

是否有可能一個className添加到SimpleComponent或者是這個限制爲僅HTML DOM元素?

例如:

var mySimpleComponent = <SimpleComponent className="myComp"/> 

我想做到這一點,這樣我可以風格我的自定義組件裏面的元素,比如這樣做的原因是:

.myComp > p { 
    background-color: blue; 
} 
+0

在p標籤前創建一個外部div,並給它一個className .myComp –

+0

這是唯一的解決方案嗎?我希望我不必爲所有組件創建封閉的div元素 – sookie

回答

3

可以,但你應該將道具傳播到內部組件。如果沒有,它不知道它。

class SimpleComponent extends React.Component 
{ 
    render() { return <p className={this.props.className}>Some text</p> } 
} 

爲了讓你想要完成的CSS查詢,那麼您應該創建您的組件內部的div

class SimpleComponent extends React.Component 
{ 
    render() { return <div className={this.props.className}><p>Some text</p></div> } 
} 
+0

我會建議下面的代碼實現最終目標。 類SimpleComponent擴展React.Component { 渲染(){返回

Some text

}} 總結DIV標籤在你想要的HTML標記和使用的className託您可通過自定義組件通過。 –

+0

對,我太在乎它沒有工作的原因。它應該是'

Some text

'。 – jorgonor

相關問題