我想动态地改变backgroundImage,当我尝试它跟随,它没有工作,但当我打开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});
`;
如果我这样使用,它可以工作,但不能改变图像动态。
import banner from "../../statics/banner.png"
export const RecommendItem = styled.div`
width: 280px;
height: 50px;
background-size: contain;
background:url(${banner});
`;
如果我使用一个网络图像(url像“https://syean.cn/img/avatar.jpg“),它也可以工作
6条答案
按热度按时间fv2wmkja1#
React、Gatsby和Next.js通常都使用Webpack,它会在部署之前编译你的网站。
为了让图片正确加载,你必须动态引用它们作为导入。这样,变量URL在Webpack完成它的工作后仍然可以工作。
pn9klfpd2#
请将文件移到公用文件夹中,然后尝试执行以下命令:
zf2sa74q3#
fquxozlt4#
您可以在项目的根目录中创建next.config.js并添加以下代码:
不要忘记安装文件加载程序,如果尚未安装。
然后,在您的组件中,您可以执行以下操作:
将使用来自bandles的abs网址。
bnlyeluc5#
您应该让background-image值中的函数返回一个字符串url(your_image_link)。
hgc7kmma6#
导入映像并尝试以下命令