将Styled Component作为反应中的prop

时间:2017-03-24 15:39:16

标签: javascript reactjs styled-components

我使用样式化组件来表达我的所有样式,并且想知道如何将样式从我的父组件footer.jsx传递给我可重复使用的子组件联系人作为道具。

我尝试了几种不同的方法,将一个字符串作为道具传递,然后将其传递给联系的样式化组件以更新background-image{this.props.icon}但这不起作用和当前我试过的方式也不会渲染任何东西。

https://www.webpackbin.com/bins/-Kg0-scl1gRf4UTOaK-Y

Footer.jsx

import React from 'react'
import styled from 'styled-components'
import Contact from '../../molecules/Contact'

const Icon1 = styled.span`
  margin-top:8.333333px;
  background:url(icon1.png);
  width:25px; 
  height:25px;
  `
const Icon2 = styled.span`
  margin-top:8.333333px;
  background:url(icon2.png);
  width:25px; 
  height:25px;
  `
export default class MainFooter extends React.Component { 
  render() {
    return (
      <Wrapper>
         <Contact icon={<Icon1 />} />
         <Contact icon={<Icon2 />} />
      </Wrapper>
    )
   }
  }

contact.jsx

export default class Contact extends React.Component {
 return (
  <A href="/">
    <Wrapper>
      <ColLeft> {this.props.icon}</ColLeft>
    </Wrapper>
  </A>
  )
}

}

1 个答案:

答案 0 :(得分:1)

在wbpackbin中一切正确,您只需要在您的跨度中添加display: block即可。在您的变体中,您有两个height: 0跨度。 请参见屏幕截图http://prntscr.com/enzkiw