mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-03-26 07:04:05 +08:00
Refactor Attribute Processing (Step 2)
Summary: Move the ViewAttributes and StyleAttributes configuration into the Components library since they're coupled and change with the native component configuration. This also decouples StyleAttributes from the reconciler by adding it to the ReactViewAttributes. To do that, I refactored the property diffing to allow for recursive configurations. Now an attribute configuration can be a nested object, a custom configuration (diff/process) or true. The requireNativeComponent path incorrectly gets its attributes set up on the root validAttributes instead of the nested style object. So I also have to add the nested form. Effectively these currently allow these attributes on props or nested. @public Reviewed By: @vjeux Differential Revision: D2456842 fb-gh-sync-id: cd5405bd8316c2fcb016d06c61244ce7719c26c0
This commit is contained in:
committed by
facebook-github-bot-4
parent
6c5024ec58
commit
8e3ce0ff98
@@ -12,6 +12,7 @@
|
||||
'use strict';
|
||||
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
var ReactNativeStyleAttributes = require('ReactNativeStyleAttributes');
|
||||
var UnimplementedView = require('UnimplementedView');
|
||||
|
||||
var createReactNativeComponentClass = require('createReactNativeComponentClass');
|
||||
@@ -75,6 +76,14 @@ function requireNativeComponent(
|
||||
|
||||
viewConfig.validAttributes[key] = useAttribute ? attribute : true;
|
||||
}
|
||||
|
||||
// Unfortunately, the current set up puts the style properties on the top
|
||||
// level props object. We also need to add the nested form for API
|
||||
// compatibility. This allows these props on both the top level and the
|
||||
// nested style level. TODO: Move these to nested declarations on the
|
||||
// native side.
|
||||
viewConfig.validAttributes.style = ReactNativeStyleAttributes;
|
||||
|
||||
if (__DEV__) {
|
||||
componentInterface && verifyPropTypes(
|
||||
componentInterface,
|
||||
|
||||
Reference in New Issue
Block a user