デザインパターンの問題を解決します。これはもちろん、空のときに文字列を生成するv-model.numberを含むMVMフローから予想されます。
数値を入力してからテキストを入力から削除すると、リアクティブデータオブジェクトで文字列に変わります。
これは確かにユーザビリティとキャストの大きな問題であり、モデルに空の文字列属性を保持する目的がわかりません。 空の場合はモデルからスプライスされます。テキストエントリに新しい属性を作成するのと同じように、その逆も同様です。
これは確かに解決する必要のあるデザインパターンの問題であり、毎回アプリケーションレベルで実装する必要はありません。これは、VueJS2に多くを追加する小さな修正であり、他の多くの人がこれについて私に同意すると確信しています。
現在、入力が空の場合
v-model.number = "model.number"
モデル= {
番号: ""
}
入力が空の場合の対処方法
v-model.number = "model.number"
モデル= {
}
現在の動作は予想されるものだと思います。
Beause v-model
はv-bind:value
とv-on:input
単なる構文糖衣であり、 input
イベントハンドラーがオブジェクトのプロパティを削除するシーンを作成していないようです(そして多分その特性の反応性を壊します)。
私は回避策を見つけます、ありがとう:)👍
#4742で見たように、これは予想される動作です。 その理由は、入力に値が指定されていないことをユーザーが知ることができるようにするためです。 そうしないと、ユーザーが0を入力し、空の入力を入力する可能性があります。
@posva Vueの反応性をさらに理解した後、文字列を返すよりもnullを返す方が間違いなく良いオプションです
最も参考になるコメント
@posva Vueの反応性をさらに理解した後、文字列を返すよりもnullを返す方が間違いなく良いオプションです