Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ReferenceError: self is not defined while using CKEditor [duplicate]

ReferenceError: self is not defined while importing CKEditor. I am using next.js.

import { CKEditor } from '@ckeditor/ckeditor5-react';

Already installed using

npm install --save @ckeditor/ckeditor5-react @ckeditor/ckeditor5-build-classic
like image 638
MdJahidHasan009 Avatar asked Mar 24 '26 04:03

MdJahidHasan009


1 Answers

After some trial-and-error I have finally made it work with this setup (NextJS project). No need to alter webpack config. How you handle your input data is up to you.

-MyEditor.jsx

import ClassicEditor from "@ckeditor/ckeditor5-build-classic";
import { CKEditor } from "@ckeditor/ckeditor5-react";
import React from "react";

const Editor = ({
  value,
  onChange,
}) => {
  return (
    <CKEditor
      editor={ClassicEditor}
      data={value}
      onChange={(event, editor) => {
        const data = editor.getData();
        onChange(data);
      }}
    />
  );
};

export default Editor;

-in any other component:

import dynamic from "next/dynamic";

const MyComp = () => {
   const Editor = dynamic(() => import("./MyEditor"), { ssr: false });
   return (
     <Editor            
        value={"Foo"}
        onChange={(v) => console.log(v)}
     />
)};
like image 149
Milan Dala Avatar answered Mar 25 '26 21:03

Milan Dala



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!