2017-09-04 119 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

相关问题