2017-06-15 97 views
0

我的代码如下所示(使用CSS模块):添加样式属性似乎没有拿起

return (
    <div> 
    <LandingPage className={styles.hidden} /> 
    </div> 
); 

不工作(即CSS不适用于元素)。但是,返回

<div> 
    <div className={styles.hidden}> 
     <LandingPage /> 
    </div> 
    </div> 

工作得很好。为什么在自定义元素上应用className会导致该类被忽略?

+0

LandingPage组件的外观如何?你需要把这个className最终放在一个html元素上 – azium

+0

答案和这个问题一样https://stackoverflow.com/questions/44070162/react-why-event-is-not-being-fired/44070389#44070389 –

回答

1

这里className将不会在LandingPage组件直接应用,它基本上是一个props值,可以从父组件传递给子组件,则需要应用内LandingPage组件类。

像这样:

<LandingPage customClassName={styles.hidden} /> 

LandingPage

render(){ 
    console.log('class name', this.props.customClassName); 
    return(
     <div className={this.props.customClassName}> 
      {/* other elements */} 
     </div> 
    ) 
} 

永远记住道具是一个对象,无论数据,你会通过从母只会变得道具价值的一部分,你需要在子组件的某处使用该数据。

检查console,它将打印出您从父项传递的适当类名。

+0

不,非常感谢。 –

相关问题