【发布时间】:2018-06-07 08:59:50
【问题描述】:
今天我有一个关于 REACT 包样式组件的问题。
我想要完成的是创建一个样式化的 div 组件,它将用作视差容器,并且必须加载某个图像作为其背景。
现在我可能只是将图像导入文件并在 styled.div 中使用 ${imgComponentName} 调用它。
但我试图能够加载具有多个图像的相同视差组件,我想将其名称作为调用视差组件的道具传递,例如<Parallax bgi="mountain">。
我当前的代码如下:
import PropTypes from 'prop-types'
import styled from 'styled-components'
import hills from '../static/img/home/hills.jpeg'
import mountain from '../static/img/home/mountain.jpeg'
const bgi = props => props.bgi ? props => props.bgi : "mountain"
export const Parallax = styled.div`
display: flex;
align-items: center;
justify-content: center;
min-height: 80vh;
background-image: url(${bgi});
background-attachment: fixed;
background-size: cover;
flex-direction: column;
`
Parallax.propTypes = {
bgi: PropTypes.oneOf(['mountain', 'hills'])
}
有没有办法通过名称和字符串调用导入的图像,作为prop bgi传递?
最好的问候, 帕特里克
附: 我知道扩展语法,但我想尝试通过一个样式组件来解决问题。
【问题讨论】:
-
您是否尝试过这里的答案:stackoverflow.com/questions/41346413/…?
标签: reactjs styled-components react-proptypes