-
Notifications
You must be signed in to change notification settings - Fork 50.4k
Description
I believe #5744 introduced a behavioral difference between development and production versions of React. We released it as a part of 15.0, and this difference still exists.
The production behavior hasn’t changed. However the development behavior diverged after this change.
var el = React.createElement('div', { key: undefined })
document.body.innerHTML = (typeof el.key) + ' ' + el.keyWhat do you expect to appear?
0.14.x
- Development (https://jsfiddle.net/sjLcmnq6/1/):
object null - Production (https://jsfiddle.net/qro1wck0/1/):
object null
15.x
- Development (https://jsfiddle.net/69z2wepo/43538/):
string undefined - Production (https://jsfiddle.net/rakg6uwy/1/):
object null
The 15.x dev behavior is different because dev code path only checks the existence of a property but not whether it’s undefined whereas the prod code path checks for undefined explicitly.
React.cloneElement() is not affected because it doesn’t include those warnings.
This doesn’t seem like a major problem (nobody noticed it!) in the real world, but I think we should fix this.
I have a related fix in the works so I’ll add some more tests and include it.