2017-01-25 7 views
0

mdlをvuejsプロジェクト(vue v2.1)にインスタンス化しようとしています。vue mdl componentHandler.upgradeDom()は関数ではない

さらに

TypeError: _materialMin2.default.upgradeDom is not a function

を、私はブラウザコンソールでcomponentHander.upgradeDom()を入力した場合、それはエラーなしで期待何やる:私は私のApp.vuemounted() { componentHandler.upgradeDom()}を呼び出すとき、それは戻ってい除き、thisに非常に同様の問題に実行しています。マウントされたフックにI console.log(componentHandler.upgradeDom())があると、emtpyオブジェクトを返します。マウントされていない場合でもthis.$nextTickハンドラを追加しようとしました。 material.jsはそうのようなファイルのインポート

アム:

import componentHandler from 'material-design-lite/material.min.js'

これをグローバルに追加しようとしましたが、それをindex.htmlのスクリプトタグにダンプし、cdnでロードするだけでは何も正しく動作しないようです。

読みやすい、これは全部がマイナス無関係なもののように見えるものです:

import componentHandler from 'material-design-lite/material.min.js' 
 

 
export default { 
 
    name: 'app', 
 
    components: { 
 
    ... 
 
    }, 
 
    mounted() { 
 
    this.$nextTick(() => { 
 
     componentHandler.upgradeDom() 
 
    }) 
 
    } 
 
}

また、私はready() {..}(古い学校のVUE)でそれを行う際に代わりmounted() {...}のそれはdoesnのエラーを返しませんが、各要素を正しく更新しません。

+0

'componentHandler.upgradeDom();'はいくつかのテンプレートに依存していますか?そうであればそれを追加できます。 – Saurabh

+0

あなたが何を意味するのか分かりません...これはmaterial-design-liteライブラリの一部です。限り、私はそれのポイントを伝えることができるコンポーネントを更新し続けることです。私の場合、動作していないもの(そしてそのメソッドを呼び出す必要がある理由)は、別のルートからナビゲートした後、浮動小数点のラベルが入力から消えてしまいますが、ページのロード/リフレッシュでうまく動作します。 updateDom(または他の多くのcomponentHandlerメソッド)がそれを処理することになっています。 – Sofanisba

答えて

0

反応の同様の問題に基づいて修正を見つけました。基本的にはthe webpack version of thisでした。変更が必要な場合はimport componentHandler from 'exports?componentHandler!material-design-lite/material'に変更され、以前と同じようにマウントされたフックが使用されました。

まだnextTickのコードで問題が発生していても、すべての子コンポーネントの要素を更新するのではなく、そのすべてをバグの要素が大半を占めていた別の子コンポーネントに移動しているようです。以前はApp.vueでした。

関連する問題