首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >diff2html无法读取未定义的属性“getJsonFromDiff”

diff2html无法读取未定义的属性“getJsonFromDiff”
EN

Stack Overflow用户
提问于 2020-11-05 18:02:43
回答 2查看 652关注 0票数 0

链接:码箱

我有以下问题,有人能帮我吗?

错误:

无法读取未定义的属性“getJsonFromDiff” ->设outStr = Diff2Html.getJsonFromDiff(dd,{

CodeDiff.js:

代码语言:javascript
运行
复制
import React, { Component } from "react";
import PropTypes from "prop-types";
import { createPatch } from "diff";
import { Diff2Html } from "diff2html";
import { InlineMath } from "react-katex/dist/react-katex";
import "highlight.js/styles/googlecode.css";
import "diff2html/lib/diff2html";

function CodeDiff(props) {
  const { oldStr, newStr, context, outputFormat } = props;
  const createdHtml = (oldString, newString, context, outputFormat) => {
    function hljs(html) {
      return html.replace(
        /<span class="d2h-code-line-ctn">(.+?)<\/span>/g,
        '<span class="d2h-code-line-ctn"><code>$1</code></span>'
      );
    }
    let args = [
      "",
      oldString || "",
      newString || "",
      "",
      "",
      { context: context }
    ];
    let dd = createPatch(...args);
    let outStr = Diff2Html.getJsonFromDiff(dd, {
      inputFormat: "diff",
      outputFormat: outputFormat,
      showFiles: false,
      matching: "lines"
    });
    let html = Diff2Html.getPrettyHtml(outStr, {
      inputFormat: "json",
      outputFormat: outputFormat,
      showFiles: false,
      matching: "lines"
    });
    return hljs(html);
  };
  const html = () => createdHtml(oldStr, newStr, context, outputFormat);
  return (
    <div id="code-diff" dangerouslySetInnerHTML={{ __html: html() }}></div>
  );
}
CodeDiff.propTypes = {
  oldStr: PropTypes.string.isRequired,
  newStr: PropTypes.string.isRequired,
  context: PropTypes.number,
  outputFormat: PropTypes.string
};
CodeDiff.defaultProps = {
  oldStr: "",
  newStr: "",
  context: 5,
  outputFormat: "line-by-line"
};

export default CodeDiff;
EN

回答 2

Stack Overflow用户

发布于 2020-11-05 18:42:20

" Diff2Html“库只公开"html”和“解析”函数,因此要想像您希望的那样从单个对象Diff2Html中使用它,就必须以不同的方式导入它,如下所示:

代码语言:javascript
运行
复制
import * as Diff2Html from "diff2html";

但是没有像getJsonFromDiffgetPrettyHtml这样的东西不知道从哪里得到的,getJsonFromDiff实际上是他们的github - https://github.com/rtfpessoa/diff2html/search?q=getJsonFromDiff中的一个测试名称,但它不是一个函数。根本就没有像getPrettyHtml这样的东西

因此,我想您想使用parse (而不是getJsonFromDiff)和html (而不是getPrettyHtml) --据我所知-- https://codesandbox.io/s/material-demo-forked-jhljq?file=/CodeDiff.js:114-153

票数 0
EN

Stack Overflow用户

发布于 2021-01-11 18:12:32

我也有同样的问题,我可以像这样访问这些函数:

代码语言:javascript
运行
复制
import * as Diff2HtmlLib from 'diff2html';

Diff2HtmlLib.Diff2Html.getJsonFromDiff(diff, diffOptions)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64702860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档