寓言中本机模块在React-native应用程序中的使用

时间:2019-06-19 10:34:26

标签: javascript f# react-native-android fable

我在将JavaScript代码传递到f#寓言react-native应用程序时遇到麻烦。更具体地说,一些反应方法可以与沙发床lite进行交互。

不幸的是,尽管这可能是一个相当简单的问题,但是我的javascript充其量是不存在的。我基本上想要这样:

import {NativeModules} from 'react-native';

NativeModules.CouchDB.addToDatabase("hei", (err, name) => console.log(err,name));

要与寓言翻译器一起在F#中使用,谢谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,与提供的代码示例相比,它需要做更多的工作。您基本上必须在 F# 中为要使用的 JS 代码编写绑定。您可以在此处找到一些提示:https://fable.io/docs/communicate/js-from-fable.html

您通常需要实际查看 JS 代码才能编写正确的绑定。对于您的具体示例,您将使用抽象成员 addToDatabase 实现 CouchDB 类型,就像从上面的链接中获取的这段代码一样:

type IAlert =
  abstract triggerAlert : message:string -> unit
  abstract someString: string

会变成:(不是工作代码,只是示范,我不熟悉 CouchDB 库)

type CouchDB =
  abstract addToDatabase : params -> returnType

然后您实际上会像这样调用该函数:

[<ImportAll("my-module")>]
let mylib: IAlert = jsNative
mylib.addToDatabase params