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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions