您可以通过boolean
强制传递它,放在!!
变量之前。
let isRequired = '' || null || undefined
<input :required="!!isRequired"> // it will coerce value to respective boolean
但我想请您注意以下接收组件已type
为 props定义的情况。在这种情况下,如果isRequired
已经定义了类型,string
则通过boolean
使其类型检查失败,您将收到 Vue 警告。要解决此问题,您可能希望避免传递该props,因此只需放置undefined
回退,props就不会发送到component
let isValue = false
<any-component
:my-prop="isValue ? 'Hey I am when the value exist' : undefined"
/>
解释
我遇到了同样的问题,并尝试了上述解决方案!是的,我没有看到,prop
但这实际上并不能满足这里的要求。
我的问题 -
let isValid = false
<any-component
:my-prop="isValue ? 'Hey I am when the value exist': false"
/>
在上述情况下,我所期望的不是my-prop
传递给子组件 -<any-conponent/>
我没有看到prop
inDOM
但在我的<any-component/>
组件中,由于 prop 类型检查失败而弹出错误。就像在子组件中一样,我希望my-prop
是 aString
但它是boolean
.
myProp : {
type: String,
required: false,
default: ''
}
这意味着子组件确实收到了 prop,即使它是false
. 这里的调整是让子组件接受default-value
并跳过检查。undefined
虽然通过了作品!
<any-component
:my-prop="isValue ? 'Hey I am when the value exist' : undefined"
/>
这有效并且我的子props具有默认值。