2018-10-21
Vue.jsで ref を使ってフォームから値の取得をしつつ、v-if で要素の表示・非表示を切り替えてるとエラーがでるので解決方法をまとめておく。
ref で参照v-if で隠す$refs から取得を試みる→ エラー Uncaught TypeError: Cannot read property … of undefined
input を非表示中に「save text」をクリックするとエラーが発生する。
v-if の代わりに v-show を使うinput を非表示中に「save text」をクリックしてもエラーが発生しない。
v-if で非表示になった要素はDOMツリーから除去されるv-show で非表示になった要素は display:none が付与されるv-show だと要素が見えなくなるだけでDOMツリーに残っているので、ref で設定した参照経由で値を取得することができる。