Vue: バインドされたプロップが空の場合、レンダリング例外が発生します

作成日 2017年03月14日  ·  3コメント  ·  ソース: vuejs/vue

Vue.jsバージョン

2.2.4

複製リンク

https://jsfiddle.net/wwuyv17z/

再現する手順

次の例のように、バインドされたプロップには何も渡しません: <test :user=""></test>

何が期待されますか?

最悪の場合、コンソールに警告が表示され、クラッシュは発生しないと思います。 せいぜい、小道具がコンポーネントにnull値で到達することを期待します。

警告またはnull置換が発生することに同意した場合は、この変更を自分でプルリクエストしてみてください。

実際に何が起こっているのですか?

次のようなエラーが発生します。

[Vue warn]: Failed to generate render function:

SyntaxError: Unexpected token } in

with(this){return _c('div',{attrs:{"id":"app"}},[_c('test',{attrs:{"user":}})],1)}

(found in <Root>)

全てのコメント3件

これは予想されます。 オブジェクトフィールドに値を指定しないと、JSでも構文エラーが発生します。

応答エヴァンをありがとう。

感謝します。 バインドされた小道具が基本的にjavascriptプロパティであるという事実に頭を悩ませたら。

その場合、Vueには開発モードでのエラーチェックの概念がありますか? 私はこの問題に遭遇した初心者を助けました-彼らが次のようなものを受け取っていれば、彼らは自分で問題を解決できたと思います:

[Vue warn] Bound property 'user' should not be empty on component 'test'

繰り返しになりますが、便利だと思われる場合は、これを追加してみてください。

はい、これはここでvalueチェックすることで可能になるはずです。 PRに取り組む場合は、必ず付属のテストケースを含めてください。

このページは役に立ちましたか?
0 / 5 - 0 評価