Reactjs 使用创建React应用程序在React中设置动态背景图像

Reactjs 使用创建React应用程序在React中设置动态背景图像,reactjs,create-react-app,Reactjs,Create React App,在下面的TSX/JSX中,背景图像没有正确加载,因为URL在传输过程中没有更改,所以它指向错误的位置 我想这是一个网页配置问题。在过去,我已经手动设置了React应用程序,但我对创建React应用程序还比较陌生。我是否需要弹出并进行一些手动配置,或者是否有更好的方法来动态加载我丢失的背景图像 {section.stops.map(s => ( <div className="tour-stop" style={{ backgroundImage:

在下面的TSX/JSX中,背景图像没有正确加载,因为URL在传输过程中没有更改,所以它指向错误的位置

我想这是一个网页配置问题。在过去,我已经手动设置了React应用程序,但我对创建React应用程序还比较陌生。我是否需要弹出并进行一些手动配置,或者是否有更好的方法来动态加载我丢失的背景图像

{section.stops.map(s => (
  <div 
    className="tour-stop"
    style={{
        backgroundImage: `url(./img/${s.imagePath})`
    }}
  >
       blah blah blah
  </div>
 ))}
{section.stops.map(s=>(
废话废话
))}

不幸的是,您必须对目录中的任何URL进行硬编码。您必须编写一个条件来选择精确的图像。如果它是一个来自DB/anywhere的URL,则情况并非如此

您的代码中的一个示例是(没有任何编码),即

如果
s.imagePath
'val1'
,请使用此图像:
'./img/1.jpeg'
如果不是,请使用任何图像


<>这只发生在您在您自己的目录中获取资产时。

< P>动态地为您的组件呈现代码<>代码>停止/代码>考虑考虑使用“<代码> > /代码>或<代码> <代码>等元素来包装从<代码> RANDER()/代码>返回的项目列表,而不是<代码> { }。括号如下所示:

。游览站{
填充:5rem;
文本对齐:居中;
}

类DemoComponent扩展了React.Component{
建造师(道具){
超级(道具);
/*使用渲染子Qunet的图像数据预填充组件的状态*/
此.state={
章节:{
停止:[
{imagePath:'https://wallpaperbrowse.com/media/images/background-wallpapers-26.jpg' },
{imagePath:'https://wallpaperbrowse.com/media/images/704532.jpg' },
{imagePath:'https://wallpaperbrowse.com/media/images/abstract-background-design_1297-88.jpg' }
]
}
}
}
render(){
/*从状态访问截面对象,通过该状态将渲染停止*/
const{section}=this.state;
/*确保返回的列表结果用元素包装
用于包装结果,但也可能很有用*/
返回{
section.stops.map(s=>(
废话废话
))
}
}
}
ReactDOM.render(
, 
getElementById(“模块”);

url在编译期间不会更改,它是在运行时动态设置的。谢谢。这其实很有道理,我不知道我怎么会错过这一点。是否有一种明显的方式来访问流程环境?我已经尝试过了,我得到的URL是一个空字符串。不客气-我不确定我是否理解您所说的流程环境,但是我可以告诉您如何实现一个组件,根据需要渲染背景图像(前提是您已经有了这些图像URL),这将非常可爱,如果你不介意并且有时间的话。@erfing-刚刚发布了一个答案。这有帮助吗?有没有一种明显的方法可以在开发和部署中都起作用?@erfling的绝对路径,我指的是硬编码的路径。目前,您的路径是动态的。如果资源来自目录,则动态路径不起作用。将编辑我的answer@erfling这与prod或dev环境无关。哦,我明白你的意思。确实,将图像放在可以通过完整路径访问的地方是可行的。这不是我所希望的,但这是我现在可以使用的一种解决方法。谢谢你的邀请suggestion@erfling不客气-如果还有什么我可以帮忙的,请告诉我:-)