В верхней части моего блога gatsby (компонент реагирования) у меня есть функция, которая получает расширение URL-адреса, и, основываясь на изображении или видео, возвращает строку html, например, так:
const printPicOrVid = function(myUrl) {
let fileExt =
myUrl.substring(myUrl.lastIndexOf(".") + 1, myUrl.length) || myUrl
if (fileExt === "jpg" || fileExt === "png" || fileExt === "gif") {
return '<img src="https:' + myUrl + '" />'
} else if (fileExt === "mp4") {
return '<video src="https:' + myUrl + '"></video>'
}
}
, которая успешно возвращает строку типа <img src="https://contentful.com/whatever/image.jpg" />
в моей return части страницы реакции, которую я имею:
{edge.node.heroImage && printPicOrVid(edge.node.heroImage.file.url)}
, которая поговорка: если heroImage из contentful существует, то вернуть jpg или mp4 html. Проблема в том, что я просто получаю строку HTML, напечатанную на странице, а не html, отображающую реальное изображение или видео, как предполагалось.
чувствую, что ответ здесь опасно установлен внутри HTML, но не уверен, как его реализовать. Любая помощь высоко ценится, спасибо.