Ejemplo n.º 1
0
        /// <summary>
        /// Handles a call to <see cref="UIManagerModule.updateView(int, string, Newtonsoft.Json.Linq.JObject)"/>.
        /// If a view transitions from being layout-only to not (or vice versa)
        /// this could result in some number of additional create view or
        /// manage children calls. If the view is layout only, no update view
        /// call will be dispatched to the native hierarchy.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="className">The class name.</param>
        /// <param name="props">The props.</param>
        public void HandleUpdateView(ReactShadowNode node, string className, JObject props)
        {
#if DISABLE_NATIVE_VIEW_HIERARCHY_OPTIMIZER
            _uiViewOperationQueue.EnqueueUpdateProps(node.ReactTag, className, props);
#else
            var needsToLeaveLayoutOnly = node.IsLayoutOnly && !IsLayoutOnlyAndCollapsible(props);
            if (needsToLeaveLayoutOnly)
            {
                TransitionLayoutOnlyViewToNativeView(node, props);
            }
            else if (!node.IsLayoutOnly)
            {
                _uiViewOperationQueue.EnqueueUpdateProps(node.ReactTag, className, props);
            }
#endif
        }