mirror of
https://github.com/zebrajr/react.git
synced 2025-12-07 00:20:28 +01:00
## Summary Currently when cloning nodes in Fabric, we reset a node's children on each clone, and then repeatedly call appendChild to restore the previous list of children (even if it was quasi-identical to before). This causes unnecessary invalidation of the layout state in Fabric's ShadowNode data (which in turn may require additional yoga clones) and extra JSI calls. This PR adds a feature flag to pass in the children as part of the clone call, so Fabric always has a complete view of the node that's being mutated. This feature flag requires matching changes in the react-native repo: https://github.com/facebook/react-native/pull/39817 ## How did you test this change? Unit test added demonstrates the new behaviour ``` yarn test -r www-modern ReactFabric-test yarn test ReactFabric-test.internal ``` Tested a manual sync into React Native and verified core surfaces render correctly.
17 lines
570 B
JavaScript
17 lines
570 B
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
declare module 'ReactNativeInternalFeatureFlags' {
|
|
declare export var enableUseRefAccessWarning: boolean;
|
|
declare export var enableDeferRootSchedulingToMicrotask: boolean;
|
|
declare export var alwaysThrottleRetries: boolean;
|
|
declare export var useMicrotasksForSchedulingInFabric: boolean;
|
|
declare export var passChildrenWhenCloningPersistedNodes: boolean;
|
|
}
|