diff --git a/src/addons/transitions/ReactTransitionGroup.js b/src/addons/transitions/ReactTransitionGroup.js
index a29dc3d2c2..ed56473146 100644
--- a/src/addons/transitions/ReactTransitionGroup.js
+++ b/src/addons/transitions/ReactTransitionGroup.js
@@ -62,14 +62,16 @@ var ReactTransitionGroup = React.createClass({
for (key in nextChildMapping) {
var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);
- if (!hasPrev && !this.currentlyTransitioningKeys[key]) {
+ if (nextChildMapping[key] && !hasPrev &&
+ !this.currentlyTransitioningKeys[key]) {
this.keysToEnter.push(key);
}
}
for (key in prevChildMapping) {
var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(key);
- if (!hasNext && !this.currentlyTransitioningKeys[key]) {
+ if (prevChildMapping[key] && !hasNext &&
+ !this.currentlyTransitioningKeys[key]) {
this.keysToLeave.push(key);
}
}
diff --git a/src/addons/transitions/__tests__/ReactCSSTransitionGroup-test.js b/src/addons/transitions/__tests__/ReactCSSTransitionGroup-test.js
index ef06239501..1508927bcb 100644
--- a/src/addons/transitions/__tests__/ReactCSSTransitionGroup-test.js
+++ b/src/addons/transitions/__tests__/ReactCSSTransitionGroup-test.js
@@ -163,4 +163,22 @@ describe('ReactCSSTransitionGroup', function() {
expect(a.getDOMNode().childNodes[0].id).toBe('one');
});
+ it('should transition from false to one', function() {
+ var a = React.renderComponent(
+
+ {false}
+ ,
+ container
+ );
+ expect(a.getDOMNode().childNodes.length).toBe(0);
+ React.renderComponent(
+
+
+ ,
+ container
+ );
+ expect(a.getDOMNode().childNodes.length).toBe(1);
+ expect(a.getDOMNode().childNodes[0].id).toBe('one');
+ });
+
});