Я получил массив, содержащий простой текст (строку) SeoTags , и я хочу добавить их в заголовок с помощью react-helmet
.
Пример компонента:
interface SeoProps {
seoTags: Array<string>;
/**
* Sample data on seoTags
* [
* "<title>Sample Page Title</title>"
* ,"<meta property='og:title' content='Sample Page Title'/>"
* ,"<meta name='description' content='sample description'/>"
* ,"<meta property='og:description' content='sample description'/>"
* ,[more and more tags no scrips here only title meta and link]
* ]
*/
}
export class SeoTagRender extends React.Component<SeoProps> {
render() {
return (
<>
<Helmet>
{this.props.seoTags.map(tag => tag)} // issue this is just a string not the tag meta | title | tagX
</Helmet>
</>
);
}
Я попытался заменить вопрос (тег) на:
<div dangerouslySetInnerHTML={{ __html: tag }} /> // this breaks cause Helmet does not recognize div tag as valid
`${tag}` // this again is just plain text
// [I tried another bunch but nothing worked]
ДО ВСЕГО: я добавил пряжу add html -react-parser
render() {
return (
<>
<Helmet>
{this.props.seoTags.map(tag => parse(`${tag}`)} // this just works
</Helmet>
</>
);
}
Вопрос :
- Есть ли способ получить рендеринг строк внутри шлема без добавления другой зависимости ?
versions:
"react": "^16.9.0",
"react-helmet": "^5.2.1",
Заранее спасибо.