我正在制作一个定制的古腾堡积木save
方法,我以字符串的形式动态更改HTML。
element.createElement(
\'div\',
null,
contentString,
)
上面的代码片段只是将HTML作为字符串输出,将所有符号转换为HTML实体(<
, >
, 等等)如何编写实际的HTML?
我正在制作一个定制的古腾堡积木save
方法,我以字符串的形式动态更改HTML。
element.createElement(
\'div\',
null,
contentString,
)
上面的代码片段只是将HTML作为字符串输出,将所有符号转换为HTML实体(<
, >
, 等等)如何编写实际的HTML?
您可以使用dangerouslysetinnerhtml
, React中的特殊HTML属性:
dangerouslySetInnerHTML
是React的替代品innerHTML
在浏览器DOM中。通常,从代码中设置HTML是有风险的,因为很容易在不经意间将用户暴露给cross-site
scripting (XSS) 袭击因此,您可以直接从React设置HTML,但您必须键入dangerouslySetInnerHTML
并用__html
钥匙,提醒自己这很危险。
ES5:
wp.element.createElement( \'div\', {
dangerouslySetInnerHTML: {
__html: \'<b>HTML</b> here\'
}
} );
const createMarkup = ( html ) => { return { __html: html } };
const my_element = <div dangerouslySetInnerHTML={ createMarkup(\'<b>HTML</b> here\') }></div>;
或在古腾堡,您可以使用wp.element.RawHTML()
这与上面的代码片段基本相同。ES5:
wp.element.RawHTML( {
children: \'<b>HTML</b> here\'
} );
import { RawHTML } from \'@wordpress/element\';
const my_html = \'some dynamic <b>HTML</b> here!\';
const my_element = <RawHTML>{ my_html }</RawHTML>;
我尚未对其进行测试,但您可能希望尝试:
element.createElement(
\'div\',
null,
{dangerouslySetInnerHTML: {__html: contentString}},
)