Skip to content

Commit d153eb5

Browse files
committed
don't pass unnecessary props
1 parent 7ddd59a commit d153eb5

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

lib/frame.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ export default class Frame extends React.Component {
2323

2424
render () {
2525
const { component } = this.props;
26-
return React.createElement(component, this.props, this.props.children);
26+
const props = {};
27+
Object.keys(this.props).forEach((k) => {
28+
if (Frame.propTypes[k]) return;
29+
props[k] = this.props[k];
30+
});
31+
return React.createElement(component, props, this.props.children);
2732
}
2833
}

lib/keyframes.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { PropTypes } from 'react';
2+
import Frame from './frame';
23

34
const noop = () => {};
45

@@ -67,8 +68,17 @@ export default class Keyframes extends React.Component {
6768
const frame = this.getFrame();
6869
if (!frame) return null;
6970

70-
const props = { ...this.props, ...frame.props };
71-
return React.cloneElement(frame, props);
71+
const props = {};
72+
Object.keys(this.props).forEach((k) => {
73+
// don't pass props which exist only on Keyframes
74+
if (Keyframes.propTypes[k] && !Frame.propTypes[k]) {
75+
return;
76+
}
77+
78+
props[k] = this.props[k];
79+
});
80+
81+
return React.cloneElement(frame, { ...props, ...frame.props });
7282
}
7383

7484
requestNextFrame () {

0 commit comments

Comments
 (0)