[英]How to convert a string into JSX in React 17
给定一些字符串:
const someString = "<p>Here is some string <strong>with some nested HTML</strong></p>"
我可以从字符串中删除<p>
和</p>
,然后使用 React 执行以下操作:
React.createElement('p', {
dangerouslySetInnerHTML: {
__html: html,
},
})
(我们假设html
是删除p
标签的字符串someString
)
然而,React 17 发布了新的 JSX 转换: https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html
这意味着 React 不再编译为React.createElement
而是直接编译为 JSX。
有没有办法用新的 JSX 转换来完成这个?
事实上是的,你可以使用类似于React.createElement
的JSX
语法
React.createElement('p', {
dangerouslySetInnerHTML: {
__html: html,
},
})
会变成
_jsx('p', {
dangerouslySetInnerHTML: {
__html: html,
},
})
但是,您需要导入: import { jsx as _jsx } from 'react/jsx-runtime';
注意:我的问题是 Typescript 是抱怨Could not find a declaration file for module 'react/jsx-runtime'.
我需要添加// @ts-ignore
以忽略 JSX 导入
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.