Исчезающий атрибут стиля фонового изображения с определенными URL
Я не уверен, относится ли это к React или цепочке сборки внутри SPFx, но у меня возникают проблемы с динамической настройкой фонового изображения для div. Я получаю URL-адрес от вызова API для SharePoint и использую приведенный ниже код для создания простой карты сайта с логотипом и названием сайта.
const Site = (props: SpSite) => {
const {Title, Url, BannerImageUrl, Acronym, BannerColor} = props;
const hasLogo = BannerImageUrl && BannerImageUrl.length > 0;
const logoUrl = hasLogo ? encodeURI(BannerImageUrl) : null;
const logoStyle: React.CSSProperties = hasLogo ? {backgroundImage: `url('${logoUrl}')`} : {backgroundColor: BannerColor};
const siteLogo = <div className="site-logo" style={logoStyle}>{!hasLogo && Acronym}</div>;
return (
<div className="site-card">
<a href={Url}>
<div>{siteLogo}</div>
<div className="site-text">
<div>{Title}</div>
</div>
</a>
</div>
);
};
Когда URL находится в формате https://tenant.sharepoint.com/image.jpg
все работает, как и ожидалось, и фоновое изображение правильно настроено на сгенерированный HTML. Когда URL имеет формат https://sitename.com/GetLogo?id='RandomGUID'
атрибут style="background-image: url('https://SomeImageUrl')"
не создается на получающемся div. Я не могу понять, удаляется ли это где-то в цепочке сборки или React не обрабатывает это должным образом. Я могу перейти непосредственно к URL-адресу изображения на основе GUID, и он отображается очень хорошо.
1 ответ
Оказывается, это была простая проблема с одинарной или двойной кавычкой. Switched url('${logoUrl}')
в url("${logoUrl}")
и все работает как положено.