是否可以在自定义react组件上设置 className?

IT技术 javascript reactjs
2021-05-15 06:46:25

假设我有一个像这样的简单组件:

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

是否可以添加classNameSimpleComponent或仅限于 HTML DOM 元素?

例如:

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

我想这样做的原因是,我可以像这样设置自定义组件中的元素样式:

.myComp > p {
    background-color: blue;
}
1个回答

你可以,但你应该将 prop 传播到内部组件。如果没有,它不知道它。

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> }
}