javascript - 如何在 React 中将数据从 CKEditor 发布到 json 服务器
问题描述
我正在尝试构建一个网页来执行 CRUD 操作。如何从 Ckeditor 获取数据并在 React 中的 Json 服务器中发布?
这是我的代码
注意:此代码适用于普通输入表单,但在 Ckeditor 部分它不起作用
import axios from 'axios';
import { useHistory, Link } from 'react-router-dom';
import Header from '../Header/Header';
import bgpic from './a215_1_cover_image.jpg';
import { CKEditor } from '@ckeditor/ckeditor5-react';
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
const AddPost = () => {
let history = useHistory();
const [user, setUser] = useState({
title: '',
img: '',
body: '',
});
const { title, img, body } = user;
const onInputChange = (e) => {
setUser({ ...user, [e.target.name]: e.target.value });
};
const onSubmit = async (e) => {
e.preventDefault();
await axios.post('http://localhost:3001/post', user);
history.push('/');
};
return (
<>
<div className='container'>
<div className='w-75 mx-auto shadow p-5'>
<h2 className='text-center mb-4'>Your Blog</h2>
<form onSubmit={(e) => onSubmit(e)}>
<div className='form-group'>
<input
type='text'
required
className='form-control form-control-lg'
placeholder='Title'
name='title'
value={title}
onChange={(e) => onInputChange(e)}
/>
</div>
<div className='form-group'>
<CKEditor
name='body'
value={body}
editor={ClassicEditor}
onChange={(e) => onInputChange(e)}></CKEditor>
</div>
</form>
</div>
</div>
</>
);
};
export default AddPost;
每当我尝试在文本编辑器部分写字时,这就是错误
解决方案
需要使用事件和编辑器来获取数据(如下图):
<CKEditor editor={ClassicEditor} onChange={(event, editor) => setData(editor.getData())} />
推荐阅读
- java - Hibernate session.delete 发出错误的 SQL 命令
- r - 绘制多项逻辑回归模型的系数
- ios - 无法通过手动拖放在 Xcode 10.2 Swift 4 中导入和使用 SSZipArchive。很多语义问题错误
- docker - Docker以某种方式修改连接?
- javascript - FlexBox 列布局旁边的溢出指示器解决方案?
- python-3.x - Networkx:如何在未加权,无向,未标记,连通图中找到最大给定长度的所有唯一路径?
- android - 反应原生图像未出现
- c - 将宏标记为已弃用的最佳方法是什么?
- google-chrome - 在工作 VPN 上无法连接到任何网站
- reactjs - 如何使用 Express.js、GraphQL、客户端和服务器文件夹为 React 应用程序配置 Webpack?