vue 属性验证器应该报告失败的属性类型/验证器检查,

6yjfywim  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(48)

此功能解决了什么问题?

具有多个属性的组件可能在最不合适的时机失败属性验证:分配一个属性将触发所有 function initProps (vm, propsOptions) 的属性验证。堆栈跟踪将显示问题是由分配特定属性 "prop1" 触发的,而实际上验证会在 "prop2" 上失败。如果这与组件实际首次渲染(即 "prop1" 是触发器)结合在一起,就不清楚哪个属性实际上失败了。
在我的情况下,报告的错误消息是:

[Vue warn]: Invalid prop type: "[object Object]" is not a constructor

这是来自方法 function assertType (value, type, vm)
为了澄清我收到的实际新手错误消息:我指定了 prop 类型为一个用 Object.freeze 声明的 "enum" 类。实际值当然是 Number。

建议的 API 是什么样子的?

将其中添加 prop 名称到消息中会更清晰:

[Vue warn]: Invalid prop "propName" type: "[object Object]" is not a constructor

这将需要在 assertType 中添加 propName (或仅添加 name)参数,以便能够将其包含在消息中

ru9i0ody

ru9i0ody1#

你好,它还开着吗?我很想在这里工作。

相关问题