【问题标题】:Error -::Type 'string | Element' is not assignable to type 'string'.?错误 -::Type 'string |元素'不可分配给类型'字符串'。?
【发布时间】:2022-01-05 21:26:12
【问题描述】:

我在我的 React 应用程序(基于 TypeScript)中使用 dangerouslySetInnerHTML

我是这样使用它的:

 <div dangerouslySetInnerHTML={{ __html:  faq.answer  }}/>

我收到此错误:

Type 'string | Element' is not assignable to type 'string'.

有没有办法解决这个问题?

我正在像这样&lt;p&gt;hello&lt;/p&gt; 那样从服务器获取 HTML。我的输出是正确的。但是在创建构建时,我的构建中断,因为我们在构建之前进行类型检查。

【问题讨论】:

  • 那么,如果faq.answerElement,您希望做什么
  • 我正在从服务器获取 HTML,例如 &lt;p&gt;hello&lt;/p&gt;。我的输出是正确的。但是在创建构建时我的构建中断,因为我们在构建之前进行类型检查
  • 你的类型说它不会总是像"&lt;p&gt;hello&lt;/p&gt;"这样的字符串,所以要么你的类型是错误的,要么你需要处理这种可能性。我们无法告诉您如何解决。

标签: javascript reactjs typescript


【解决方案1】:

您没有提供太多详细信息,但是,假设您想序列化 faq.answer 在它是一个元素的情况下,您可以像这样使用Element.outerHTML

<div dangerouslySetInnerHTML={{ __html: typeof faq.answer === 'string'
  ? faq.answer
  : faq.answer.outerHTML }}/>

【讨论】:

    猜你喜欢
    • 2023-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    相关资源
    最近更新 更多