首页 > 解决方案 > 在单个 HTML 页面中使用 Nivo 图形库 (React)

问题描述

我有一个带有 React 的 HTML 页面(无需任何工具手动构建,只是一个文本编辑器)。此页面工作正常。现在,我想用 NIVO lib 添加一个饼图。

当我添加脚本(CDN)时,我在控制台中收到以下错误:

exports is not defined

我可以通过创建一个假的来解决这个问题exports var = {}(这是一个好的解决方案吗?)

但后来我有一个新的错误:

require is not defined

这是否意味着来自 NIVO 的 CDN 链接不正确?如何解决这个问题?

替代方案:我愿意使用另一个与 React 一起工作的库。但我只想使用 CDN 链接和文本编辑器来实现这一点。

完整的 HTML 文件:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <title>Batch stats</title>
    <script>let exports = {};</script>
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <script crossorigin src="https://unpkg.com/react@16.7.0/umd/react.production.min.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@16.7.0/umd/react-dom.production.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@nivo/pie@0.61.1/dist/nivo-pie.cjs.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
    function Page(props) {
        return (
            <div>
                <h1>Hello World</h1>
                <div>How to add a PIEChart ?</div>
            </div>
        );
    }
    ReactDOM.render(<Page version="v3"/>, document.getElementById('root'));
</script>
</body>
</html>

谢谢

标签: htmlreactjschartsstatic

解决方案


尼沃不支持。

您应该使用 UMD 构建,但是,您将需要一堆额外的依赖项,包括使用现代 JS 功能的 D3 包。

https://github.com/plouc/nivo/issues/959


推荐阅读