如何使用react-froala-wysiwyg在编辑器中显示动态内容html



我想知道如何使用react(react-froala-wysiwyg(在编辑器中显示动态脚本/html内容。它显示但动态数据无法正常工作显示为 ${orderdate!

import React from "react";
import 'froala-editor/css/froala_style.min.css';
import 'froala-editor/css/froala_editor.pkgd.min.css';
import FroalaEditor from 'react-froala-wysiwyg';
class AddEmail extends React.PureComponent {
constructor(props) {
super(props);

handleChange =()=>{
this.setState({ emailbody: value });
}
render() {
return (
<React.Fragment>
<div className="form-group col-lg-12 col-sm-12">
<FroalaEditor
model={this.state.emailbody}
onModelChange={this.handleChange}
/>
</div>    
</React.Fragment>
);
}
}
}

// Dynamic data from backend data
emailbody: {
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>Order Confirm</p>
${orderdate!''} 
</body>
</html>
}

由于电子邮件正文的数据是字符串而不是 JSX,因此您需要替换字符串本身。

const reactStringReplace = require('react-string-replace');
const backEndResponseString = "content here";
const emailBody = reactStringReplace(backEndResponseString, '${orderdate!''}', (match, i) => (
<span>${orderdate}</span>
));
this.setState({
emailBody : emailBody
})

如果您有JSX内容,那么相同的工作原理如下:

this.state = {
emailbody: `
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>Order Confirm</p>
${orderdate || ""} 
</body>
</html>`
};

但由于后端响应是字符串,因此需要替换该值。

最新更新