sye*_*ean 5 reactjs styled-components
我想动态更改背景图像,当我尝试按照它进行操作时,它不起作用,但是当我在 chrome 中打开 devtools 时,可以显示该背景
<RecommendWrapper>
<RecommendItem imgUrl="../../static/banner.png" >
</RecommendItem>
</RecommendWrapper>
export const RecommendItem = styled.div`
width: 280px;
height: 50px;
background-size: contain;
background: url(${(props)=>props.imgUrl});
`;
Run Code Online (Sandbox Code Playgroud)

如果我这样使用,它可以工作,但不能改变图像动态。
import banner from "../../statics/banner.png"
export const RecommendItem = styled.div`
width: 280px;
height: 50px;
background-size: contain;
background:url(${banner});
`;
Run Code Online (Sandbox Code Playgroud)
如果我使用网络图片(网址喜欢“ https://syean.cn/img/avatar.jpg ”),它也可以工作
小智 28
React、Gatsby 和 Next.js 通常都使用 Webpack,它会在部署之前编译您的站点。他们将缩小图像并更改每个图像的路径。
为了让图像正确加载,您必须动态引用它们作为导入。这样,在 Webpack 完成它的事情后,变量 URL 仍然可以工作。
import styled from 'styled-components';
import img from './img/bg.gif';
const Content = styled.div`
border: 1px solid #000;
background-image: url(${img});
width: 2000px;
height: 2000px;
`;
Run Code Online (Sandbox Code Playgroud)
将文件移动到公共文件夹中并尝试以下命令:
<RecommendItem imgUrl={process.env.PUBLIC_URL + '/banner.png'} >
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35454 次 |
| 最近记录: |