Skip to content

Commit 1996914

Browse files
committed
[react-native] Support returning null from a component
1 parent 42689c4 commit 1996914

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

Libraries/Components/View/View.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212

1313
var NativeMethodsMixin = require('NativeMethodsMixin');
1414
var PropTypes = require('ReactPropTypes');
15-
var React = require('React');
15+
var ReactClass = require('ReactClass');
16+
var ReactElement = require('ReactElement');
17+
var ReactIOSComponentMixin = require('ReactIOSComponentMixin');
1618
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
1719
var StyleSheetPropType = require('StyleSheetPropType');
1820
var ViewStylePropTypes = require('ViewStylePropTypes');
@@ -42,8 +44,8 @@ var stylePropType = StyleSheetPropType(ViewStylePropTypes);
4244
* `View`s are designed to be used with `StyleSheet`s for clarity and
4345
* performance, although inline styles are also supported.
4446
*/
45-
var View = React.createClass({
46-
mixins: [NativeMethodsMixin],
47+
var View = ReactClass.createClass({
48+
mixins: [NativeMethodsMixin, ReactIOSComponentMixin],
4749

4850
/**
4951
* `NativeMethodsMixin` will look for this when invoking `setNativeProps`. We
@@ -138,7 +140,7 @@ var View = React.createClass({
138140
},
139141

140142
render: function() {
141-
return <RCTView {...this.props} />;
143+
return ReactElement.createElement(RCTView, this.props);
142144
},
143145
});
144146

Libraries/ReactIOS/ReactIOSDefaultInjection.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ var NodeHandle = require('NodeHandle');
2424
var ReactClass = require('ReactClass');
2525
var ReactComponentEnvironment = require('ReactComponentEnvironment');
2626
var ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');
27+
var ReactEmptyComponent = require('ReactEmptyComponent');
2728
var ReactInstanceHandles = require('ReactInstanceHandles');
2829
var ReactIOSComponentEnvironment = require('ReactIOSComponentEnvironment');
2930
var ReactIOSComponentMixin = require('ReactIOSComponentMixin');
@@ -35,6 +36,7 @@ var ReactNativeComponent = require('ReactNativeComponent');
3536
var ReactUpdates = require('ReactUpdates');
3637
var ResponderEventPlugin = require('ResponderEventPlugin');
3738
var UniversalWorkerNodeHandle = require('UniversalWorkerNodeHandle');
39+
var View = require('View');
3840

3941
// Just to ensure this gets packaged, since its only caller is from Native.
4042
require('RCTEventEmitter');
@@ -77,6 +79,8 @@ function inject() {
7779
ReactIOSComponentEnvironment
7880
);
7981

82+
ReactEmptyComponent.injection.injectEmptyComponent(View);
83+
8084
EventPluginUtils.injection.injectMount(ReactIOSMount);
8185

8286
ReactClass.injection.injectMixin(ReactIOSComponentMixin);

0 commit comments

Comments
 (0)