-
Notifications
You must be signed in to change notification settings - Fork 46.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed invalid prop types error message to be more specific #11308
Changes from 1 commit
2653595
8de9a20
4ce5b49
3d4724e
449b98d
bb7978c
05ecf0a
e18a235
9fc2b7f
ede38f3
ae6fcbf
aada64c
de26d9d
c7ee43d
2c19ea3
37207a0
12db856
69cbdfc
c841d41
da20477
5b994bf
425c00b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -180,26 +180,28 @@ if (__DEV__) { | |
return true; | ||
} | ||
|
||
if (typeof value === 'boolean' && value === false) { | ||
warning( | ||
DOMProperty.shouldAttributeAcceptBooleanValue(name), | ||
'If you mean to conditionally pass an attribute, use a ternary ' + | ||
'expression: `%s`={condition ? value : undefined} instead of ' + | ||
'{condition && value}.%s', | ||
value, | ||
getStackAddendum(), | ||
); | ||
if (typeof value === 'boolean') { | ||
if (value === true) { | ||
warning( | ||
DOMProperty.shouldAttributeAcceptBooleanValue(name), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we make this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes :) Just so I have a correct understanding, the refactor will look like:
Is this the branching logic you prefer? I do not understand the !false condition, so if I am incorrect please explain what should take it's place. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. if (typeof value === 'boolean' && !DOMProperty.shouldAttributeAcceptBooleanValue(name)) {
if (value === true) {
warning(false,
...
);
} else {
warning(false,
...
);
}
...
} |
||
'Received `%s` for non-boolean attribute `%s`. If this is expected, cast ' + | ||
'the value to a string.%s', | ||
value, | ||
name, | ||
getStackAddendum(), | ||
); | ||
} else { | ||
warning( | ||
DOMProperty.shouldAttributeAcceptBooleanValue(name), | ||
'If you mean to conditionally pass an attribute, use a ternary ' + | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this also start with |
||
'expression: `%s`={condition ? value : undefined} instead of ' + | ||
'{condition && value}.%s', | ||
value, | ||
getStackAddendum(), | ||
); | ||
} | ||
warnedProperties[name] = true; | ||
return true; | ||
} else if (typeof value === 'boolean') { | ||
warning( | ||
DOMProperty.shouldAttributeAcceptBooleanValue(name), | ||
'Received `%s` for non-boolean attribute `%s`. If this is expected, cast ' + | ||
'the value to a string.%s', | ||
value, | ||
name, | ||
getStackAddendum(), | ||
); | ||
} | ||
|
||
// Now that we've validated casing, do not validate | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: we already know it's a boolean so can just write
if (value)