vueでechartsを使用する際の問題点。Error Initialize failed invalid dom
2022-02-07 10:44:46
今日、echartsを使っているときに小さな問題が発生しましたので、記録しておきます。
まず、echartsの使い方です。
// 1: npm install dependencies
npm install echarts --save
// 2: Introduce echarts
import * as echarts from 'echarts'; // Note: here you want * as echarts instead of import echarts from xxx
// 3: Need an exit to display echarts
<div id="hello-world"></div>
// 4: Initialization: initialize the echarts instance based on the prepared dom
var myChart = echarts.init(document.getElementById('hello-world'));
myChart.setOption({ // draw chart
title: {
text: 'ECharts Getting Started Example'
},
tooltip: {},
xAxis: {
data: ['shirt', 'cardigan', 'chiffon', 'pants', 'heels', 'socks']
},
yAxis: {},
series: [{
name: 'sales',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
});
ここでのポイントは、手順4で遭遇した問題です。
1 エラーが報告されることがあります: "エラー。Initialize failed: invalid dom."
エラーの理由は、domがまだマウントされていないためで、これを処理する方法はいくつかあります。
1.1 ここで created を使用しないでください (mounted を使用してください)、created はまだインスタンスを作成するだけで、テンプレートはまだマウントされていません。
1.2 this.$nextTick(()=>{}) を使う(このコールバック関数は、データがマウントされ更新された後に実行されるので、うまくいきます)。
1.3 プロミスの使用
コードはこのようになります。
mounted() {
// this.$nextTick(()=>{
this.initData()
// })
// // Create a new promise object
// let newPromise = new Promise((resolve) => {
// resolve()
// })
// // then asynchronously execute the initialization function of the echarts
// newPromise.then(() => {
// // This dom is the echarts icon display dom
// this.initData()
// })
},
2 Echartsで表示される終了タグ(<div id"hello-world"></div> )には、幅と高さを設定しなければ、表示されません。
関連
-
vue.cli3はクロスドメイン問題を解決する XMLHttpRequestへのアクセスは「http://192.168.88.228/login/Login?phone=19939306484&pass」で。
-
「未定義のプロパティ'length'を読み取れない」エラー処理
-
require(src) は警告を報告するCritical dependency: 依存関係の要求は式である
-
ウィンドウやドキュメントがNuxtで定義されていない問題のまとめ
-
error: 'lianxi/' does not have a commit checked out fatal: Add files failed Solution
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'E:\webnode_modules_nod
-
赤色と警告を報告することによって、vueで使用するためのvを解決する
-
Uncaught (in promise) TypeError: 未定義のVueエラーのプロパティ'theData'を読み取れない
-
VueはQRCodeプラグインを使用してQRコードを生成していますが、マウントされたフックでのエラー: "TypeError: nullのプロパティ'appendChild'を読み取れない"
-
vueの@のエイリアスがジャンプを認識しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedvueがエラーで動作する getaddrinfo ENOTFOUND localhost
-
XXXをオリジンとするフレームがクロスオリジン.iframeクロスドメイン問題にアクセスするのをブロックするシンプルな解決策
-
マウントされたフックでのエラー: "TypeError: TypeError: Cannot read property 'XXXXX' of undefined" マウントされたフックにエラーが発生しました。
-
VueComponent で未定義のプロパティ '$el' を読み取ることができません。
-
vueのインストール・イメージは、https://registry.npm.taobao.org/cnpmへのエラー・リクエストに失敗したと報告します。理由: getaddrinfo ENOTFOUND regis
-
無効なHostヘッダー サーバードメインのアクセス問題
-
Uncaught ReferenceError: exports は vue プロジェクトで定義されていません。
-
[Intervention] パッシブイベントリスナー内部で、ターゲットがapparentsとして扱われるため、preventDefaultできない。
-
vueコンソールがエラーUncaughtを報告する(promiseの場合)
-
vue实现PC端分辨率适配