PROGBLOG Developers Blog

空想家 Developers Blog

稼ぐ力? とにかくスキルが欲しい。

Nuxt.js で todos.length = 0 が リアクティブに反応しない

はじめに

Nuxt.js でウェブアプリを作成している。

複数のリストを FirebaseRealtime Database に保存するというもの。

v-for を用い、リアクティブに配列に要素を追加し、最後にまるっとデーターベースに保存する。

問題発生

データーベースに保存するためにsibmit をすると、当然データベースに保存はされているが、配列にはデータが残ったままなので、保存後もリストが表示され続ける。

そこで、submit をクリックした瞬間にel.length = 0; で配列のデータを空にする処理をした。

再度、実行。

が、依然、リストは表示され続ける。

念のためコンソールで確認すると配列は空になっている。

つまり、Nuxt.js 側で配列の削除をリアクティブに反応できていないことが分かった。

el.length = 0; は Nuxt.js で感知できない

結論から言うとただそれだけ。

つまり配列を空にする処理を別の書き方にすればOK。

todos.splice(0) で同一処理をすることでリアクティブに反応してくれるようになった。