我尝试了很多方法来转换它:- https://observablehq.com/@d3/zoomable-sunburst
进入反应,因为它主要使用observable
and runtime
。那没有被转换为 React。
它也使用了一些 helper.js。代码在这里https://observablehq.com/@d3/zoomable-sunburst
有没有任何人可以给出的想法或任何建议。
提前致谢
我尝试了很多方法来转换它:- https://observablehq.com/@d3/zoomable-sunburst
进入反应,因为它主要使用observable
and runtime
。那没有被转换为 React。
它也使用了一些 helper.js。代码在这里https://observablehq.com/@d3/zoomable-sunburst
有没有任何人可以给出的想法或任何建议。
提前致谢
该操作已到达 Observablehq 论坛。如果您需要帮助将 Observablehq 笔记本嵌入到 React 应用程序中,这里有一些关于问题答案的见解。
https://talk.observablehq.com/t/zoomable-sunburst-d3-chart-with-react/3686/22
总之,Observablehq notebook 使用现代import.meta
语法。create-react-app
使用 webpack/babel 打包和转换您的代码,它目前不支持该语法。你可以弹出、编辑和添加一个 webpack/babel 插件来支持import.meta
.
接下来的两个解决方案是如何避免import.meta
下载结束编辑笔记本源代码到您的src/
文件夹,使用绝对路径而不是相对路径。Mike Bostock 做了一个工作演示https://github.com/observablehq/react-zoomable-sunburst
将笔记本源代码下载到您的src/
文件夹并编辑cost fileAttachments
new URL
对require
. Webpack 加载器将复制并链接更正后的文件
例如,更改:
const fileAttachments = new Map([["FILE_NAME.csv", new URL("./files/HASH", import.meta.url)]]);
至
const fileAttachments = new Map([["FILE_NAME.csv", require("./files/HASH")]]);
这仅webpack
在您的应用程序上有文件加载器时才有效。