首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量JSX进入呈现dangerouslySetInnerHTML()

变量JSX进入呈现dangerouslySetInnerHTML()
EN

Stack Overflow用户
提问于 2020-10-05 07:35:12
回答 1查看 207关注 0票数 1

我需要在dangerouslySetInnerHTML中插入一个变量。

代码语言:javascript
复制
import serviceAPI from "serviceAPI";
const [content,setContent] = useState("");
const [firstName,setFirstName] = useState("Thomas");

    useEffect(() => {
         fetchContent()
     }, [])
     
     const fetchContent = async () => {
     // Return string : "<h1>Hello {firstName}</h1>"
     const result = await serviceAPI.getContent()
     setContent(text)
     }
    return (
      <p dangerouslySetInnerHTML={{ __html: content.toString() }}></p>
    )

此代码的结果:Hello {firstName}

我需要的结果是:Hello Thomas

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 07:38:39

您可以使用字符串内插或简单连接将变量插入到字符串中:

代码语言:javascript
复制
const text = `<h1>Hello ${firstName}</h1>`

此外,您还需要将firstName添加到useEffect的依赖项列表中。

在您的代码示例中,您不需要使用useEffect,我会将其更改为:

代码语言:javascript
复制
const [firstName,setFirstName] = useState("Thomas")
const content = `<h1>Hello ${firstName}</h1>`
 
return (
  <p dangerouslySetInnerHTML={{ __html: content }} />
)

如果从API返回字符串,则可以使用regex搜索并替换:

代码语言:javascript
复制
const text = "<h1>Hello {firstName}</h1>"
const newText = text.replace(/{firstName}/g, firstName)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64204240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档