fix(runtime-core): fix warning for absent props (#3363)

fix #3362
This commit is contained in:
HcySunYang
2021-03-26 04:22:43 +08:00
committed by GitHub
parent e4a5712a33
commit 86ceef4352
2 changed files with 27 additions and 6 deletions

View File

@@ -142,7 +142,7 @@ export function initProps(
setFullProps(instance, rawProps, props, attrs)
// validation
if (__DEV__) {
validateProps(props, instance)
validateProps(rawProps || {}, props, instance)
}
if (isStateful) {
@@ -264,8 +264,8 @@ export function updateProps(
// trigger updates for $attrs in case it's used in component slots
trigger(instance, TriggerOpTypes.SET, '$attrs')
if (__DEV__ && rawProps) {
validateProps(props, instance)
if (__DEV__) {
validateProps(rawProps || {}, props, instance)
}
}
@@ -462,13 +462,17 @@ function getTypeIndex(
/**
* dev only
*/
function validateProps(props: Data, instance: ComponentInternalInstance) {
const rawValues = toRaw(props)
function validateProps(
rawProps: Data,
props: Data,
instance: ComponentInternalInstance
) {
const resolvedValues = toRaw(props)
const options = instance.propsOptions[0]
for (const key in options) {
let opt = options[key]
if (opt == null) continue
validateProp(key, rawValues[key], opt, !hasOwn(rawValues, key))
validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key))
}
}