链接:码箱
我有以下问题,有人能帮我吗?
错误:
无法读取未定义的属性“getJsonFromDiff” ->设outStr = Diff2Html.getJsonFromDiff(dd,{
CodeDiff.js:
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;
发布于 2020-11-05 18:42:20
" Diff2Html“库只公开"html”和“解析”函数,因此要想像您希望的那样从单个对象Diff2Html中使用它,就必须以不同的方式导入它,如下所示:
import * as Diff2Html from "diff2html";
但是没有像getJsonFromDiff
和getPrettyHtml
这样的东西不知道从哪里得到的,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。
发布于 2021-01-11 18:12:32
我也有同样的问题,我可以像这样访问这些函数:
import * as Diff2HtmlLib from 'diff2html';
Diff2HtmlLib.Diff2Html.getJsonFromDiff(diff, diffOptions)
https://stackoverflow.com/questions/64702860
复制相似问题