私は迅速かつ反応的なネイティブに新しいです。ネイティブコンポーネントの属性を再マッピングする正しい方法は何ですか
UIViewのサブクラスであるNativeCompというサードパーティのネイティブコンポーネントがあります。
と私が反応し、ネイティブコンポーネントとして、それをラップし、jsのは、ネイティブの属性に属性を再マップしたい(いくつかの名前変更作業)例えば
JS
<RNComponent config={enable:true, size:5}/>
は、ネイティブコードにつながります。
component.enable=true
component.size=5
アプローチ1
RNComponentはNativeCompを拡張し、新しいsetConfig、この機能でconfigue自己を追加します。
これは動作しますが、少し奇妙です。
アプローチ2 スタンドアロンのUIViewクラスContainerViewを作成し、NativeCompをサブビューとして追加します。
override init(frame: CoreGraphics.CGRect) { self._component = NativeComp(frame: frame); super.init(frame: frame); self.addSubview(_component); } override func reactSetFrame(_ frame: CGRect) { _component.reactSetFrame(frame); }
それはアプローチ1よりもはるかにきれいに見えますが、_componentはContainerViewの境界線の外にあるので、タッチイベントが欠落しています。
私は
self.reactSetFrame(frame);
で
override func reactSetFrame(_ frame: CGRect) { self.reactSetFrame(frame); _component.reactSetFrame(frame); }
ように、プログラムがクラッシュexec bad access
をそれを書く場合、私はかなり理由を理解していません。
js属性を既存のネイティブコンポーネントに再マップする正しい方法は何ですか?