How can I pass fast custom component properties from js world

I have a custom component written fast and I want to pass some custom properties from js world,

but I really don't know how to do this, please provide the main code below.


Demo bridge-header.h

#import "RCTBridgeModule.h" #import "RCTViewManager.h" 

CollectionViewManagerBridge.m

 #import "RCTView.h" #import "RCTViewManager.h" @interface RCT_EXTERN_MODULE(CollectionViewManagerSwift, RCTViewManager) @end 

CollectionViewManagerSwift.swift

 @objc(CollectionViewManagerSwift) class CollectionViewManagerSwift : RCTViewManager, UICollectionViewDataSource, UICollectionViewDelegate { let contentCellIdentifier = "CellIdentifier" var collectionView: UICollectionView override init() { let layout = CustomCollectionViewLayout() let collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout) collectionView.registerClass(CustomCell.self, forCellWithReuseIdentifier: contentCellIdentifier) collectionView.directionalLockEnabled = false collectionView.backgroundColor = UIColor.whiteColor() self.collectionView = collectionView } override func view() -> UICollectionView! { self.collectionView.delegate = self self.collectionView.dataSource = self return self.collectionView; } // ... some other code } 

In addition, I also have CustomCell.swift and CustomCollectionViewLayout.swift to be used above.

this code works fine when I call <CollectionViewManagerSwift /> in the render() method from js world,

but how can I pass properties from the js world, for example <CollectionViewManagerSwift customProperty={customProperties} /> , and how can I define customProperty in my quick code?

Perhaps I am not expressing clearly, thanks for your time.


subsequent

I am trying to add customProperty to CollectionViewManagerBridge.m

 #import "RCTView.h" #import "RCTViewManager.h" @interface RCT_EXTERN_MODULE(CollectionViewManagerSwift, RCTViewManager) RCT_CUSTOM_VIEW_PROPERTY(customProperty, NSArray, CollectionViewManagerSwift) { NSLog(@"%@ -- %@", json[0], json[1]); } @end 

then i call it from js world

 <CollectionViewManagerSwift customProperty={['foo', 'bar']} /> 

I get value in Xcode output

 2016-02-27 17:58:07.167 Demo[49690:12639774] foo -- bar 

but how can I get customProperty in CollectionViewManagerSwift.swift ?

thanks again.

considers

+6
source share
1 answer

You need to: "Implement the presentation method (UIView *)" as described in this document: http://facebook.imtqy.com/react-native/docs/native-components-ios.html#content

Here you can initialize your CollectionView.

0
source

All Articles