This commit is contained in:
Dan Abramov
2017-03-31 16:53:23 +01:00
parent e18e75c008
commit e628f40f2a
3 changed files with 20 additions and 12 deletions
+18 -9
View File
@@ -19,6 +19,7 @@ const Transform = require('art/core/transform');
const Mode = require('art/modes/current');
const React = require('react');
const ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');
const ReactDOM = require('react-dom');
const ReactInstanceMap = require('ReactInstanceMap');
const ReactMultiChild = require('ReactMultiChild');
@@ -198,15 +199,23 @@ const Surface = React.createClass({
node.resize(+this.props.width, +this.props.height);
}
const transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
transaction.perform(
this.updateChildren,
this,
this.props.children,
transaction,
ReactInstanceMap.get(this)._context,
);
ReactUpdates.ReactReconcileTransaction.release(transaction);
const doUpdate = () => {
const transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
transaction.perform(
this.updateChildren,
this,
this.props.children,
transaction,
ReactInstanceMap.get(this)._context,
);
ReactUpdates.ReactReconcileTransaction.release(transaction);
};
if (ReactDefaultBatchingStrategy.isBatchingUpdates) {
doUpdate();
} else {
ReactUpdates.batchedUpdates(doUpdate);
}
if (node.render) {
node.render();
+1 -2
View File
@@ -23,7 +23,7 @@ var ReactNative;
// TODO: figure this out when we work on flat bundles in RN.
// This might not be needed after all.
function injectReactNative(RN : $FlowFixMe) {
function injectReactNative(RN: $FlowFixMe) {
ReactNative = RN;
}
@@ -42,7 +42,6 @@ import type {
ReactNativeBaseComponentViewConfig,
} from 'ReactNativeViewConfigRegistry';
/**
* `NativeMethodsMixin` provides methods to access the underlying native
* component directly. This can be useful in cases when you want to focus
+1 -1
View File
@@ -17,7 +17,7 @@ var ReactNative = ReactNativeFeatureFlags.useFiber
? require('ReactNativeFiber')
: require('ReactNativeStack');
NativeMethodsMixin.__injectReactNative(ReactNative);
NativeMethodsMixin.__injectReactNative(ReactNative);
ReactNative.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
createReactNativeComponentClass: require('createReactNativeComponentClass'),