我有一个用例,我需要向自定义组件传递特定的错误消息。当且仅当某个prop设置为true
时。但我怀疑this.required
在props中可用,因为它尚未初始化。
//custom component
props: {
required: {
type: Boolean,
default: false
},
requiredErrorMsg: {
type: String,
default: '',
required: this.required
}
}
Vue(或eslint?)应该抛出一个警告或错误,如果prop丢失,这取决于required
是否设置为true。
<Custom :required="true" /> //missing prop error
<Custom :required="true" required-error-msg="this is an error"/> //no issues
当前使用:
新版本2.3.4
eslint v5.0.1
2条答案
按热度按时间xmakbtuz1#
当一个必需的 prop 丢失时,Vue本身从来不会真正“抛出”错误。Vue只会发出
[Vue warn]
。documentation中并没有提到这一点。为了证明这一点,如果你运行下面的代码片段,你可以看到它仍然可以渲染:如果你想让它真正抛出(停止执行),你需要使用
computed
属性显式地将它设置为throw
。如果你在 used computed属性中显式地使用throw
运行下面的代码片段,你应该看到它根本不会呈现:jvidinwx2#
当然可以... VUE 3