Я использую Next Js. У меня есть строка html, полученная с сервера. Он представляет собой запись в блоге и содержит несколько тегов <img>
. В настоящее время я рендеринг поста, как это:
const blogpostHtml = "..." // an html string that comes from the server
return (
...
<div
dangerouslySetInnerHTML={{__html: blogpostHtml}}
/>
...
)
И он отлично работает. Тем не менее, я хотел бы добавить функциональность к изображениям. Я нашел эту библиотеку , которая выполняет то, что я хочу, с неуправляемым компонентом:
...
<Zoom>
<img
alt="some alt"
width="500"
src="the image url"
/>
</Zoom>
...
Однако я заметил, что не могу просто вставить теги Zoom
, потому что она интерпретируется как необработанный тег html вместо компонента. И если я пытаюсь отобразить его в строку, он теряет функциональность.
let html = ReactDOMServer.renderToString(
<Zoom>
<img
alt="some alt"
width="500"
src="the image url"
/>
</Zoom>
)
return (
...
<div
dangerouslySetInnerHTML={{__html: html}}
/>
...
)
Как видно на изображении, результирующий html такой же, как при использовании компонента Zoom, как и предполагалось, но кнопка теряет свое событие
Итак, как мне объединить строку html с сервера и неконтролируемый компонент Zoom для достижения того, что я хочу?