【发布时间】:2017-08-06 09:24:43
【问题描述】:
如何使用 reactjs 创建 morris.js 图表? 我正在使用带有 react.js 库的 Asp.net MVC5 项目。这是我的第一个 react 项目,我想在单击某个按钮时更改 morris.js 图表。 我不想在 react js 脚本中使用其他 react 库,只是 morris js librayr
【问题讨论】:
标签: asp.net-mvc reactjs morris.js
如何使用 reactjs 创建 morris.js 图表? 我正在使用带有 react.js 库的 Asp.net MVC5 项目。这是我的第一个 react 项目,我想在单击某个按钮时更改 morris.js 图表。 我不想在 react js 脚本中使用其他 react 库,只是 morris js librayr
【问题讨论】:
标签: asp.net-mvc reactjs morris.js
简单的解决方案
在componentDidMount() 中绘制图表,在我的示例中是一个甜甜圈:
yourChart = Morris.Donut({
element: 'elementId',
data: data,
// ...other options
});
yourChart 在类之外声明,或者您可以在constructor() 中声明this.yourChart。
如果你想更新/重绘你的图表,你可以在点击按钮时调用yourChart.setData(newData)。
【讨论】:
TypeError: morris_js_morris_js__WEBPACK_IMPORTED_MODULE_3___default.a.Area is not a function
这是让 Morris.js 与 React 一起工作的方法。
npm install --save-dev morris.js
npm install --save-dev raphael
import Raphael from 'raphael';
import 'morris.js/morris.css';
import 'morris.js/morris.js';
constructor() {
super();
window.Raphael = Raphael;
}
如果您收到morris.css 的编译错误,请阅读this。
如果你写import Morris from 'morris.js/morris.js',那就不行了。
还有另一种方法可以让 Raphael 在全球范围内。
const webpack = require('webpack');
module.exports = {
plugins: [
new webpack.ProvidePlugin({
Raphael: 'raphael'
})
],
...
}
如果您更喜欢此变体,则不需要:
import Raphael from 'raphael';
window.Raphael = Raphael;
【讨论】: