将swift块传递给React Native

时间:2018-01-14 11:31:53

标签: javascript swift react-native

是否可以将块从Swift传递给React Native作为prop?我试图这样做:

    let rnRoot = RCTRootView(
        bundleURL: URL(string: "http://localhost:8081/index.ios.bundle?platform=ios"),
        moduleName: "App",
        initialProperties: ["callLog": { (arg: String) in
            print(arg)
        }],
        launchOptions: nil
    )!

在我看来,callLog已经通过,甚至RN也有了这个想法,它的功能,日志是:

2018-01-14 12:28:11.650130+0100 prj[46427:1071345] Running application App ({
    initialProps =     {
        callLog = "(Function)";
    };
    rootTag = 1;
})

但它始终以callLog为空:

  

运行应用程序" App"与appParams:   {" rootTag":1," initialProps" {" callLog":空}}。 DEV === true,   开发级警告为ON,性能优化为OFF

是否可以这样做?

1 个答案:

答案 0 :(得分:1)

您无法直接将一段swift代码作为initialProp发送。这座桥将不知道如何解释它。您想通过JS调用的任何快速代码都必须通过Native Module完成。 https://facebook.github.io/react-native/docs/native-modules-ios.html