Nextjs 集成富文本编辑器react-quill

目录

一、组件代码

二、参考文档


由于Next与react有些差别,直接调用组件会报无法找到文档的错误,于是我们只有考虑动态导入了解决问题。因为富文本编辑器一般作用与form页面对SEO意义不大,所以这里可以考虑暂时关闭SSR。

一、组件代码

/**
 * @author Dragon Wu
 * @since 2024/6/11 14:36
 */
import React, {useEffect, useState} from 'react';
import dynamic from 'next/dynamic';
import 'react-quill/dist/quill.snow.css';

const ReactQuill = dynamic(() => import('react-quill'), {ssr: false});

const TenderEditor: React.FC<{defaultValue:string, onChange:Function}> = React.memo(({defaultValue, onChange}) => {

    const [editorValue, setEditorValue] = useState(defaultValue);

    const handleChange = (content) => {
        setEditorValue(content);
        onChange(content);
    };

    useEffect(() => {
        handleChange(defaultValue)
    }, [defaultValue]);

    return (<>
        <ReactQuill
            modules={{
                toolbar: [
                    ["bold", "italic", "underline", "strike"],       // 加粗 斜体 下划线 删除线
                    ["blockquote", "code-block"],                    // 引用  代码块
                    [{list: "ordered"}, {list: "bullet"}],       // 有序、无序列表
                    [{indent: "-1"}, {indent: "+1"}],            // 缩进
                    [{size: ["small", false, "large", "huge"]}],   // 字体大小
                    [{header: [1, 2, 3, 4, 5, 6, false]}],         // 标题
                    [{color: []}, {background: []}],             // 字体颜色、字体背景颜色
                    [{align: []}],                                 // 对齐方式
                    ["clean"],                                       // 清除文本格式
                    ["link", "image", "video"]                       // 链接、图片、视频
                ],
            }}
            value={editorValue}
            onChange={handleChange}
            theme="snow"
            placeholder="请输入内容"
        />
    </>)
});

TenderEditor.displayName = "TenderEditor";

export default TenderEditor;

正常渲染,没有再报错:

二、参考文档

next.js - React Quill , unable to access import of Quill.import - Stack Overflow

react富文本编辑器 react-quill简单使用 - 简书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/699413.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

推荐系统学习笔记(五)-----双塔模型

目录 双塔模型 训练 pointwise训练 pairwise训练 listwise训练 双塔模型 矩阵补充模型只用到了用户id和物品id&#xff0c;其余属性没有用上 用户属性也可以这样处理 用户塔和物品塔各输出一个向量&#xff0c;两个向量的余弦相似度作为兴趣的预估值 训练 第一种&#x…

麦稻同框丰收忙,食家巷美味之旅

在夏收时节&#xff0c;金色的麦浪随风翻滚&#xff0c;洋溢着丰收的喜悦。而在这丰收的背后&#xff0c;食家巷以其独特的产品&#xff0c;为人们带来了一场与麦稻有关的美味盛宴。 传统的烤馍&#xff0c;带着麦子烘焙后的醇厚香气。用心挑选的原料&#xff0c;经过精…

如何用二维码进行来访登记?这个模板帮你轻松实现!

在工厂、学校、写字楼、建筑工地等人员出入频繁的场所&#xff0c;使用传统的纸质登记方法容易造成数据丢失&#xff0c;而且信息核对过程繁琐&#xff0c;效率低下。 可以用二维码代替纸质登记本&#xff0c;访客进入时扫码就能登记身份信息&#xff0c;能够提高门岗访客管理…

气膜建筑在体育和娱乐行业的多样化应用—轻空间

随着人们生活水平的提高和健康意识的增强&#xff0c;体育和娱乐行业的发展迎来了新的机遇和挑战。气膜建筑&#xff0c;作为一种新型建筑技术&#xff0c;因其独特的优势和广泛的应用场景&#xff0c;正在引领体育和娱乐行业的新潮流。 快速建设高品质体育场馆 气膜建筑以其快…

护眼台灯怎么选?保护孩子视力看这些标准!

如果家中孩子最近开始出现“眯眼”的行为&#xff0c;那么家长们就要格外注意了&#xff01;孩子很可能会出现近视的情况&#xff0c;要注意观察学习写作业的光线以及用眼姿势习惯&#xff0c;同时可以及时就医检测。如今&#xff0c;孩子的学习负担越来越大&#xff0c;孩子的…

qt-C++笔记之命令行生成项目pro文件(极简编译qt项目代码)

qt-C笔记之命令行生成项目pro文件(极简编译qt项目代码) 文章目录 qt-C笔记之命令行生成项目pro文件(极简编译qt项目代码)步骤 1&#xff1a;生成项目文件步骤 2&#xff1a;生成 Makefile 文件步骤 3&#xff1a;编译程序详细解释注意事项项目结构main.cpp 文件生成项目文件生成…

【Mac】Premiere Pro 2024 for Mac v24.1软件介绍和安装教程

软件介绍 Premiere Pro是一款专业的视频编辑软件。它被广泛应用于电影、电视和网络视频的制作和编辑&#xff0c;具备强大的功能和灵活的工作流程&#xff0c;适用于从初学者到专业人士的各种需求。以下是对Premiere Pro的一些详细介绍&#xff1a; 主要特点 多轨道时间线编…

据阿谱尔APO Research统计显示,2023年全球有机硅弹性体凝胶市场销售额约为2.1亿美元

根据阿谱尔 (APO Research&#xff09;的统计及预测&#xff0c;2023年全球有机硅弹性体凝胶市场销售额约为2.1亿美元&#xff0c;预计在2024-2030年预测期内将以超过4.17%的CAGR&#xff08;年复合增长率&#xff09;增长。 有机硅弹性体凝胶是一类具有独特性质和广泛应用领域…

[论文笔记]Query Rewriting for Retrieval-Augmented Large Language Models

引言 今天带来论文Query Rewriting for Retrieval-Augmented Large Language Models的笔记。 本篇工作从查询重写的角度介绍了一种新的框架&#xff0c;即重写-检索-阅读&#xff0c;而不是以前的检索-阅读方式&#xff0c;用于检索增强的LLM。关注的是搜索查询本身的适应性&…

Java二维数组的定义以及使用

二维数组 1.二维数组的定义格式 1.概述:数组中的套多个数组 2.定义格式a.动态初始化数据类型[][] 数组名 new 数据类型[m][n]数据类型 数组名[][] new 数据类型[m][n]数据类型[] 数组名[] new 数据类型[m][n]m:代表的是二维数组的长度n:代表的是二维数组中每一个一维数组的…

20240607在ubuntu下解压缩7z的压缩包文件

20240607在ubuntu下解压缩7z的压缩包文件 2024/6/7 10:26 百度&#xff1a;ubuntu 7z解压缩 在Ubuntu中&#xff0c;可以使用7z命令来解压.7z文件。首先&#xff0c;确保你已经安装了p7zip-full包&#xff0c;如果没有安装&#xff0c;可以使用以下命令安装&#xff1a; sudo …

力扣每日一题 6/11

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 419.甲板上的战舰[中等] 题目&#xff1a; 给你一个大小为 m x n 的矩阵 b…

图形和插图软件Canvas X Pro 20 Build 914

Canvas X Pro是一款功能强大、用途广泛的Windows软件,旨在处理技术图形和可视化,该程序结合了创建矢量和光栅图形的工具,这使其成为需要创建高质量技术插图和演示文稿的工程师、设计师、科学家和其他专业人士的理想选择。 Canvas X Pro的主要功能之一是支持处理大型和复杂的…

Diffusers代码学习-ControlNet(Inpaint)

对于Inpaint&#xff0c;需要一个初始图像、一个蒙版图像和一个描述用什么替换蒙版的提示词。ControlNet模型允许添加另一个控制图片来调节模型。让我们用Inpaint蒙版来调整模型。这样&#xff0c;ControlNet可以使用修复掩模作为控件来引导模型在蒙版区域内生成图像。 # 以下代…

如何轻松解决自养号测评中的买家签收问题?

在当今日益繁荣的跨境电商领域&#xff0c;自养号测评已成为众多卖家提升销量与排名的关键策略。然而&#xff0c;在这条道路上&#xff0c;买家签收难题却像是一座难以逾越的山峰&#xff0c;让不少卖家感到困扰。本文将深入探讨如何巧妙攻克这一难题&#xff0c;为自养号测评…

贪 吃 蛇

简介 简易贪吃蛇&#xff0c;使用 javax.swing 组件构建游戏界面&#xff0c;通过监听键盘按键实现游戏操纵。 功能设计 按1 - 开始游戏按2 - 重新开始按3 - 暂停/继续按Esc-退出游戏统计吃到的苹果个数&#xff08;得分&#xff09;难度控制&#xff0c;得分超过阈值时难度…

[总线]AMBA总线架构的发展历程

目录 引言 发展历程 第一代AMBA&#xff08;AMBA 1&#xff09; 第二代AMBA&#xff08;AMBA 2&#xff09; 第三代AMBA&#xff08;AMBA 3&#xff09; 第四代AMBA&#xff08;AMBA 4&#xff09; 第五代AMBA&#xff08;AMBA 5&#xff09; AMBA协议简介 ASB&#x…

用 Kotlin 多平台开发构建跨平台应用程序:深入探索 KMP 模板工程

用 Kotlin 多平台开发构建跨平台应用程序&#xff1a;深入探索 KMP 模板工程 Kotlin 多平台开发 (KMP) 是一种强大的工具&#xff0c;可用于构建跨平台移动、桌面和 Web 应用程序。它提供了一种统一的代码基础&#xff0c;使开发人员能够高效地针对多个平台开发应用程序。 KM…

【工具】新手如何正确使用Pycharm?

1. 什么是JetBrains Toolbox JetBrains Toolbox是一个管理工具&#xff0c;用于安装、更新和管理JetBrains开发工具的所有版本。它可以简化多个IDE的管理&#xff0c;并确保你总是使用最新版本的软件。 2. 安装JetBrains Toolbox 步骤1&#xff1a;下载Toolbox 访问JetBrai…

演出门票小程序开发

一、实时票务信息更新的重要性 在演出票务市场&#xff0c;票务信息的实时性对于消费者来说至关重要。一旦票务信息出现滞后或错误&#xff0c;不仅可能导致消费者错过心仪的演出&#xff0c;还可能引发一系列不必要的纠纷和投诉。因此&#xff0c;演出门票小程序通过引入实时…