Vue.js 是否可以在Vue中设置道具条件,例如,道具2取决于道具1的值?
我有一个用例,需要将特定的错误消息传递给自定义组件。当且仅当某个道具设置为Vue.js 是否可以在Vue中设置道具条件,例如,道具2取决于道具1的值?,vue.js,eslint,nuxt.js,Vue.js,Eslint,Nuxt.js,我有一个用例,需要将特定的错误消息传递给自定义组件。当且仅当某个道具设置为true。但我怀疑道具中是否有这个。required,因为它尚未初始化 //custom component props: { required: { type: Boolean, default: false }, requiredErrorMsg: { type: String, default: '', required: this.required } }
true
。但我怀疑道具中是否有这个。required
,因为它尚未初始化
//custom component
props: {
required: {
type: Boolean,
default: false
},
requiredErrorMsg: {
type: String,
default: '',
required: this.required
}
}
如果道具丢失,则Vue(或eslint?)应该抛出警告或错误,具体取决于required
是否设置为true
<Custom :required="true" /> //missing prop error
<Custom :required="true" required-error-msg="this is an error"/> //no issues
//缺少道具错误
//没问题
目前正在使用:
nuxt v2.3.4
当所需道具丢失时,eslint v5.0.1Vue本身从未真正“抛出”错误。Vue只会发出
[Vue警告]
。这在报告中没有真正提到。因此,为了证明这一点,如果您使用缺少的必需道具运行下面的代码段,您可以看到它仍然可以呈现:
Vue.component('custom-component'){
模板:`
必填项:
{{必需的}}
所需错误消息:
{{requiredErrorMessage}}
`,
道具:{
所需:{
类型:布尔型,
默认值:false
},
所需错误消息:{
类型:字符串,
默认值:“”,
required:true//是否尝试将所需的prop包装到computed中?我认为不应该将required用作变量名-它是一个保留字(可能不是变量名,但最终会让人困惑)。也许requiredMsg可以。required前面的:使其成为布尔值而不是字符串,变量名与OP的问题无关:)是的,布尔问题没有问题,但命名确实与问题有关。请用一个代码段来尝试它-使用required它根本不起作用,而使用requiredMsg它会起作用。@JC97,使用computed不起作用,问题是在prop中使用this
,因为它尚未初始化。无法读取属性isRequired'of使用名为isRequired
和prop=required的计算值未定义:this.isRequired