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.key
What do you expect to appear?
0.14.x
15.x
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.
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.
What do you expect to appear?
0.14.x
object nullobject null15.x
string undefinedobject nullThe 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.