【问题标题】:How to inject background image url into styled-components如何将背景图像 url 注入样式组件
【发布时间】:2020-03-20 19:20:14
【问题描述】:

我使用 styled-components 作为设计库,我创建了一个 div,它将保存背景图像及其属性,如果我从样式组件外部注入图像 url,它不会占用并且会犯一些错误。

我会复制一些代码:

image-div 组件作为样式化组件:

const ImageDiv = styled.div`
  height: 100%;
  width: 100%;
  float: left;
  background-repeat: no-repeat;
  background-position: left;
  background-size: cover;

`
export default ImageDiv;

在屏幕上使用 ImageDiv 并将背景图像传递给它不会从上面获取背景属性

<ImageDiv style={{ backgroundImage: `url(${signin})` }} src = {signin} alt="logo" />

我希望能够将 url 作为 prop 传递并从上面将其注入到样式组件中

【问题讨论】:

    标签: reactjs styled-components


    【解决方案1】:

    使用解构道具

    const ImageDiv = styled.div`
      height: 100%;
      width: 100%;
      float: left;
      background-repeat: no-repeat;
      background-position: left;
      background-size: cover;
      background-image: ${({url}) => `url(${url})`};
    `
    export default ImageDiv;
    

    【讨论】:

      【解决方案2】:

      您可以简单地将它作为另一个道具传递,然后在样式组件中使用它作为background-image 属性。

      <ImageDiv bg={signin} src={signin} alt="logo" />
      
      const ImageDiv = styled.div`
         background-image: url(${(props) => props.bg});   
      `;
      

      【讨论】:

      • 我认为这个 url 的语法(${(props) => props.bg});错了
      • @SImonHaddad 你为什么这么认为?你有一些错误吗?语法很好
      • 没有错误,但它不再显示任何图像,并且 url 是正确的
      • @SImonHaddad 我也一样,你找到解决办法了吗?
      猜你喜欢
      • 2017-04-01
      • 2020-03-28
      • 2019-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 2017-09-24
      相关资源
      最近更新 更多