【发布时间】:2019-05-09 08:47:14
【问题描述】:
我有一个用例,我需要将特定的错误消息传递给自定义组件。当且仅当某个道具设置为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
目前使用:
nuxt v2.3.4
eslint v5.0.1
【问题讨论】:
-
您是否尝试将所需的道具包装在计算中?
-
我认为你不应该使用 required 作为变量名——它是一个保留字(也许不是变量名,但最终会让人感到困惑)。也许 requiredMsg 就可以了。
-
require 前面的 : 使其成为布尔值而不是字符串,变量名与 OP 的问题无关 :)
-
是的,bool 问题没问题,但命名确实与问题有关。用 sn-p 试试 - required 它根本不起作用,而用 requiredMsg 它会。
-
@JC97,使用计算不起作用,在道具内部使用
this的问题将不起作用,因为它尚未被初始化。 无法读取未定义的属性 isRequired' 使用名为isRequired的计算和 prop =required: this.isRequired