javascript - Vuejs自定义插件getelementbyid不起作用
问题描述
我正在尝试创建以下 codepen 的 vuejs 插件
https://codepen.io/hakimel/pen/nLFDv?editors=0010
如果我不换线,一切正常
var canvas = document.body.appendChild( document.createElement( 'canvas' ) );
但是如果我尝试使用以下行
var canvas = document.getElementById('mycanvas')
它总是返回
chart.js?28d6:5 Uncaught TypeError: Cannot read property 'getContext' of null
我相信发生这种情况是因为 div#mycanvas 在这个特定时刻不存在。但是解决这个问题的方法是什么?
这是我的 chart.js
export default {
install: function(Vue) {
Object.defineProperty(Vue.prototype, 'linechart', { value: new LineChart({ data: [] }) });
}
}
然后我在 vue-component 中使用以下代码
created(){
this.linechart.populate([
{ label: 'One', value: 0 },
{ label: 'Two', value: 100 },
{ label: 'Three', value: 200 },
{ label: 'Four', value: 840 },
{ label: 'Five', value: 620 },
{ label: 'Six', value: 500 },
{ label: 'Seven', value: 600 },
{ label: 'Eight', value: 1100 },
{ label: 'Nine', value: 800 },
{ label: 'Ten', value: 900 },
{ label: 'Eleven', value: 1200, future: true },
{ label: 'Twelve', value: 1400, future: true }
]);
this.linechart.start();
}
提前致谢!
解决方案
推荐阅读
- ffmpeg - 使用 FFmpeg AutoGen 保存到位图适用于 Windows,但不适用于 Linux
- python - 在 React 文件夹结构中将杂项文件、脚本放在哪里?
- excel - 基于excel数字计数的IF语句
- c - 更改按钮样式(C win32)
- ios - 您的规范来源都不包含满足依赖项的规范:Firebase (~> 6.33.0)、Firebase (= 6.33.0, ~> 6.33.0)
- javascript - 如何在使用 jquery 填写表单之前禁用提交表单按钮?
- php - 为 Laravel 8 路由定义命名空间
- javascript - 使用 React Hooks,使用“useState”和“useEffect”,有没有办法渲染一个状态,直到状态有一个值?
- python - python __module__ dunder 是 __main__
- ios - Xcode 12.0 iOS 13+ UIViewController() viewWillDisappear() 问题