reactjs - 如何使用 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>`
};
但由于您的后端响应是字符串,因此需要替换该值。
推荐阅读
- git - 有没有什么好方法可以重用以前被压缩合并的 git 分支?
- python - 如何按日期快速排序dict
- php - 更改从我的网站发送的“匿名”电子邮件
- django - 编辑 Fromset ModelChoiceField
- javascript - 无法从 face-api.js 中的本地节点 js 服务器加载图像
- datetime - 处理日期/时间和时区的奇怪时间偏移
- c++ - 使用 QPen 的带有虚线图案的多色虚线
- python - 如何从 S3 存储桶中读取 CSV 文件,对其应用某些 if 语句,然后编写新的更新 CSV 文件并将其放入 S3 存储桶中?
- java - 为什么 Groovy 编译器会拒绝依赖 JSR308 Type Annotations Compiler?
- git - use docker-compose to generate an image --only--