/// <summary>
        /// Updates the props of the node.
        /// </summary>
        /// <param name="props">The props.</param>
        public void UpdateProps(JObject props)
        {
            var setters = ViewManagersPropCache.GetNativePropSettersForShadowNodeType(GetType());

            foreach (var key in props.Keys())
            {
                if (setters.TryGetValue(key, out var setter))
                {
                    setter.UpdateShadowNodeProp(this, props);
                }
            }

            OnAfterUpdateTransaction();
        }
#pragma warning restore CS0618 // Type or member is obsolete

        void IViewManager.UpdateProps(object viewToUpdate, JObject props)
        {
            var propSetters =
                ViewManagersPropCache.GetNativePropSettersForViewManagerType <TView>(GetType());

            var keys = props.Keys();

            foreach (var key in keys)
            {
                var setter = default(IPropSetter);
                if (propSetters.TryGetValue(key, out setter))
                {
                    setter.UpdateViewManagerProp(this, viewToUpdate, props);
                }
            }

            OnAfterUpdateTransaction((TView)viewToUpdate);
        }