css - 替换 JSX 中的 CSS 空格

标签 css reactjs jsx

我想从对象字段中删除空白,以便可以使用 JSX 将其显示为 CSS 中的背景图像。

renderImage(singleMedia, type) {
  let mediaType = singleMedia.mediaType;
  if(type == "image")){
    var mediaPreview = singleMedia.mediaPreview.replace(/\s+/g, '%20');
    console.log("The original image was", singleMedia.mediaPreview, "The NEW ONE IS", mediaPreview);
    var divStyle = {
        backgroundImage: 'url(' + mediaPreview + ')'
    }
  }

 return(
        <div className="image-logo" style={divStyle}> </div>
    );
 }

如果 mediaPreview 没有空格,我可以很好地渲染图像。但是当它确实有空格时,即使我添加了%20,我仍然无法查看它。

当我运行代码时,我得到以下结果:(但输出仍然是空白。图像仅在我发送没有空格的情况下显示)

the original image was http://api.testing.ca/media/ad/no-smoking-sign (1).png The NEW ONE IS http://api.testing.ca/media/ad/no-smoking-sign%20(1).png

我想知道是否有办法去除 divStyle 中的空白并将其转换为 %20?

最佳答案

问题不在于空格,问题在于文件名中的结束括号。不要用 %20 替换空格,而是用 %29 替换 ):

var mediaPreview = singleMedia.mediaPreview.replace(/\)/g, '%29');

CSS 中的 url 标记 ends when the first non-escaped ) is found .

或者,您可以引用整个 URL:

var divStyle = {
  backgroundImage: 'url("' + mediaPreview + '")'
}

但是你需要转义引号。

关于css - 替换 JSX 中的 CSS 空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41456227/

相关文章:

html - 嵌套的 DIV 和 z-index

css - 如何仅在左侧和右侧从 div 中制作阴影渐变?

jquery - 如何获得单个元素的内部和外部宽度?

javascript - 如果 json 文件中有内容,有条件地 react 显示链接?

javascript - 需要一个赋值或函数调用,而是看到一个表达式React JS

javascript - React 和 HTML Select 组件返回 String 而不是 Integer 的最佳方式

javascript - 如何在 JSX 文本内容中包含重复的 @ 符号?

javascript - 在屏幕中垂直居中文本

javascript - 我无法在 react 中更新我的数组状态?

reactjs - React Material UI Autocomplete 显示有问题的选项