Гэтсби: img является пустым тегом элемента и не должен иметь ни «дочерних элементов», ни использовать «dangerouslySetInnerHTML»

Я пытаюсь создать компонент с Gatsby Js, который включает импортированное изображение. Однако, когда ссылка добавляется с HTML-тегом привязки, я получаю img is a void element tag and must neither havechildrennor usedangerouslySetInnerHTML`.

Без <a> ... </a> такой ошибки нет.

Мой код:

import React from "react"
import medium from "../images/medium.png"


const Socials = () => (
    <div>
        <a href = "https://medium.com"> <img src = {medium}> </img> </a>
    </div>
)
export default Socials

Трассировки стека:

  in img (at Socials.js:8)
    in a (at Socials.js:8)
    in div (at Socials.js:7)
    in Socials (at pages/index.js:44)
    in IndexPage (created by HotExportedIndexPage)
    in AppContainer (created by HotExportedIndexPage)
    in HotExportedIndexPage (created by PageRenderer)
    in PageRenderer (created by JSONStore)
    in JSONStore (created by RouteHandler)
    in RouteHandler (created by EnsureResources)
    in div (created by FocusHandlerImpl)
    in FocusHandlerImpl (created by Context.Consumer)
    in FocusHandler (created by RouterImpl)
    in RouterImpl (created by Context.Consumer)
    in Location (created by Context.Consumer)
    in Router (created by EnsureResources)
    in ScrollContext (created by EnsureResources)
    in RouteUpdates (created by EnsureResources)
    in EnsureResources (created by LocationHandler)
    in LocationHandler (created by LocationProvider)
    in LocationProvider (created by Context.Consumer)
    in Location (created by Root)
    in Root
    in _default

Как правильно добавить URL-ссылку к изображению?

Как говорится в ошибке/предупреждении. Это <img /> не <img></img>

Andreas 17.07.2019 12:22

Привет, @Andreas. Я попробовал ` <a href = "Medium.com"> <img src = {medium} /> </a> ` и получил ту же ошибку.

isaacsultan 17.07.2019 12:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
2
15 394
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны иметь возможность импортировать изображение в свой компонент и добавить его в src изображения следующим образом.

import React from "react"
import gatsbyIconImage from "../images/gatsby-icon.png"

const IndexPage = () => (
  <>
    <a href = "https://stackoverflow.com"><img alt = "stack overflow" src = {gatsbyIconImage}></img></a>
  </>
)

export default IndexPage

Однако, если вы поместите что-нибудь между открывающим и закрывающим тегами <img> (даже один пробел), gatsby, похоже, решит, что у него есть дочерние элементы, и не будет правильно компилироваться.

Спасибо. Это был пробел между тегами!

isaacsultan 17.07.2019 15:59

Другие вопросы по теме