Как я могу получить значения от реагировать родной в мой класс бридж-Свифт? - PullRequest
1 голос
/ 25 января 2020

Следуя документации, я пытаюсь сделать что-то вроде этого: Все работает, но значение myprop не попадает в мой ComponentView

Собственный код

//component.h

#import "React/RCTBridgeModule.h"
#import "React/RCTViewManager.h"
#import "React/RCTUIManager.h"

@interface component: RCTViewManager

@property (nonatomic, assign) NSString *myProp;

@end


//component.m

#import "component.h"

#import <Foundation/Foundation.h>

@interface RCT_EXTERN_MODULE(ComponentViewManager, RCTViewManager)

RCT_EXPORT_VIEW_PROPERTY(myProp, NSString)

@end

//ComponentViewManager.swift

import Foundation

@objc(ComponentViewManager)
class ComponentViewManager: RCTViewManager {

    override func view() -> UIView! {
        return ComponentView()
    }

    ....
}

//ComponentView
class ComponentView: UIView {

    //initWithFrame to init view from code
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.frame = frame
        setupView()
    }

    func setupView() {
        ...
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    public func setMyProp(_ myProp: NSString) {
        //DON'T GET Here :(
        self.myProp = myProp
    }
}

Что я ошибаюсь, значение myProp не на мой взгляд? RN документы: https://facebook.github.io/react-native/docs/native-components-ios

1 Ответ

0 голосов
/ 06 февраля 2020

Отвечая на мой собственный вопрос :(, но я разобрался, как решить, и может ли это кому-нибудь помочь.

вам нужно просто установить один атрибут с тем же именем вашей опоры, которое было зарегистрировано в вашем .m и в ваших .h файлах.

//ComponentView

@objc var myProp = "" {
  didSet {
    //Here you can call any function and it will be called after the value get here
    doSomething()

  }
}
...