首先,我查看了react-d3-tree github上的第40和95号问题,我 在 StackOverflow 上没有看到任何对我有帮助的东西。我正在尝试实现 parseJSON 方法,以便可以从项目文件夹中获取自己的 JSON 文件,然后生成树形图。
让我们从我一开始所做的开始。我复制粘贴了在崩溃前工作了 2 秒的示例代码。原因?服务器端渲染。太好了,所以我从 NextJS 中找到了这个,它允许我为某些组件禁用 SSR。嘿,现在示例代码正在运行。让我们试试他们使用外部数据的示例代码!不,它找不到 parseJSON 方法。我不知道该怎么做,找不到任何东西来解决这个问题。我正在尝试导入这个与 SSR 有一些问题的函数,但因为它不是一个组件,我无法使用动态导入它,并且我无法正常导入,因为它会导致“未定义窗口”错误因为SSR。以下是我的主要两个文件。
DynamicComponent.js [版本 1]
import dynamic from 'next/dynamic';
const Tree = dynamic(
() => import('react-d3-tree'),
{ ssr: false },
);
export default Tree;
DynamicComponent.js [版本 2]
import dynamic from 'next/dynamic';
export const Tree = dynamic(
() => import('react-d3-tree'),
{ ssr: false },
);
export const treeUtil = dynamic(
() => import('react-d3-tree/src/util'),
{ ssr: false },
);
图/index.js
import React from 'react';
import { Tree, treeUtil } from '../DynamicComponent';
const myTreeData = require('../fakeData.json');
class Diagram extends React.PureComponent {
constructor() {
super();
this.state = {
data: undefined,
};
}
componentWillMount() {
treeUtil.parseJSON(myTreeData)
.then((data) => {
this.setState({ data });
});
}
render() {
return (
<div
id="treeWrapper"
style={{ width: '50em', height: '20em' }}
>
<Tree data={this.state.data} />
</div>
);
}
}
export default Diagram;
我在版本 1 中遇到的错误
ReferenceError: treeUtil is not defined
我在版本 2 中遇到的错误
TypeError: _DynamicComponent__WEBPACK_IMPORTED_MODULE_1__.treeUtil.parseJSON is not a function
请 StackOverflow,你是我唯一的希望。