LoginSignup
0
0

More than 1 year has passed since last update.

JavaScript関連で出たエラーのメモ。

Last updated at Posted at 2021-11-23

Vue.jsの勉強がてらのアプリ製作中に出たエラーを備忘録としてここにまとめます。エラー内容は多種多様。同じエラーが出た方がいれば参考にしてみてね(^_-)-☆
随時更新します。

1. Chart.jsを使っていた時。

『 “export ‘default’ (imported as ‘Chart’) was not found in ‘chart.js’』というエラーが出た。
Chart.jsのバージョンが原因。最新のものだとうまく動かないとのこと。
↓↓のこちら記事で解説あり。

なので、インストールし直せばOK。

$ npm uninstall vue-chartjs
$ npm uninstall chart.js

$ npm install chart.js@2.8
$ npm install vue-chartjs@3.4.2

2. forEachを使おうとした時。

『TypeError: _this.data.forEach is not a function』というエラーが出た。
これはajaxを使っている時だったが、戻ってくるデータが配列になっていなかったのが原因。
↓↓のようなコントローラーで、(バックエンドLaravel使ってました、)『return[]』とするとオブジェクトで返ってきてしまうので、そこを『return response()->json($products);』と書き換えれば、配列で返ってきて問題解決した。

    public function index()
    {
        $products = Product::orderByDesc('year')->get();
        // return ['products' => $products];
        return response()->json($products);
    }

3. Vue.jsでimgのsrc属性にv-forを使おうとした時。

2021/12/14追記。
Vue.jsでimgタグのsrc属性にローカルのjsonファイルのURLを指定したかった時です。
結論から言うと、以下のようにするとうまくいきました。HTMLでtable使ってます。

<tr v-for="(song, index) in songs" :key="id">
 <th>{{ song.id }}</th>
 <td>{{ song.title }}</td>
 <td>{{ song.artist }}</td>
 <td><img :src="song.src" /></td>
</tr>

調べてみると、Vue.jsでimgタグのsrc属性の書き方はちょっと気をつけなければいけないみたいで、require()を使うとか、publicフォルダにおいて絶対パス指定するとかあったんです。
それを参考に、
<img :src="{{ song.src }}" /> とか、<img :src="require({{ song.src }})" /> とか、<img :src="require("song.src")" /> とか色々書いていたけど、全部エラーになったよね。うーむ。なんかjsonファイルからの読み込みにはシンプルに<img :src="song.src" /> と書けばよかったようです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0