为什么我的 React 代码编辑器组件没有被 PrismJs 高亮显示?

Why is my React code editor component not highlighted by PrismJs?

我刚刚发现 PrismJs,它看起来很完美。但出于某种原因,它没有在以下组件中突出显示我的代码:

import { useState, useEffect } from "react";
import Prism from "prismjs";

export default function EditCode() {
  const [content, setContent] = useState("");

  useEffect(() => {
    Prism.highlightAll();
  }, []);

  useEffect(() => {
    Prism.highlightAll();
  }, [content]);
  return (
    <section className="codeGlobalContainer">
      <textarea
        className="codeInput"
        value={content}
        onChange={(e) => setContent(e.target.value)}
      />
      <pre className="codeOutput">
        <code className={`language-javascript`}>{content}</code>
      </pre>
    </section>
  );
}

是否缺少任何让它工作的东西?

npm 页面上没有指定,但您需要在官方网站上下载主题 CSS:PrismsJS 然后,您只需将 CSS 文件移动到您的目录并像往常一样将其导入您的组件:

import "../../styles/prism.css";

如@FlowRan 所述,您需要 import 您想要使用的任何主题 但 注意:您不需要单独下载主题,因为它们随包一起提供。 使用 import 语句从- 'prismjs/themes/prism-{theme-name}.css';