Реагировать || React Helmet: отображать текстовые метки - PullRequest
0 голосов
/ 19 марта 2020

Я получил массив, содержащий простой текст (строку) 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",

Заранее спасибо.

...