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
で設定した参照経由で値を取得することができる。