質問: require('clone'); copy(entity) { return clone(entity) }, ``` そして自分が開発している環境(vue-cli3.0)のpackage.jsonを ``` "dependencies": { "sl-vue-tree": "git+https://github.com/my-name/sl-vue-tree#master", ``` このように変えました。 そしてnpm installをしました。 しかし開発環境で npm run serveより起動してみると、 ちゃんと関数ごとディープコピーはされていたのですが、以下のコンソールエラーが出てしまいました。 Invalid default value for prop "multiselectKey": Props with type Object/Array must use a factory function to return the default value. found in ---> at src/sl-vue-tree.vue このエラーについて調べてみたのですが、 こちらの記事を見る感じ、関数はアロー関数にしなくてはいけないのでしょうか。 ただ、自分は関数を含んだオブジェクトのpropは他の箇所で普通にやっております。 質問したいこととしては、 1.このコンソールエラーをどうやって消すか。 2.元のライブラリ(sl-vue-tree)にプルリクというのをしてみたいが、上のような他のライブラリを使う方法でプルリクしてもいいのか。 です。 よろしくお願いします。
回答: > > しかしこちらのモジュール、配列の中のオブジェクトが持つ"関数"が、ドラッグ&ドロップ時に消えてしまいます。 > > > sl-vue-treeというモジュールのREADMEを見てみましたが、以下のように `serializable` とあるのでこれは仕様と思われます。 ``` data?: TDataType; // any serializable user data ``` 仕様を変更してはいけないわけではありません。特に上位互換性が保てるならば。 しかし、現状なぜこの仕様になっているのかは理解した上で変更した方がよいでしょう。 Vueに詳しくないのでここからは想像ですが、そもそもVueの仕様か慣習により、データ(Vueインスタンスの `data` プロパティ)には関数オブジェクトを含めないことになっているからではないでしょうか。 まずは、Vueのデータに関数オブジェクトを保存してよいものなのか確認した方がよさそうです。