Skip to content

React.createElement(type, { key: undefined }) is handled incorrectly #6879

@gaearon

Description

@gaearon

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions