Javascript Js中ocaml存储类型的Js

Javascript Js中ocaml存储类型的Js,javascript,ocaml,Javascript,Ocaml,我正在用js_of_ocaml的React包装器玩。 在我的OCaml接口中,每个组件都是一个模块,其中包含类型props和类型state。这些类型将被传递到实际的react props&state,因此需要在某个时候使用js.Unsafe.inject将它们转换为js。带有道具的示例(此处仅为字符串): 要实际使用这些道具,我需要从js React道具中获取道具类型对应的值,从而得到fromjs。 因此,props&state是每个组件模块中的自定义类型,需要存储在javascript pro

我正在用js_of_ocaml的React包装器玩。 在我的OCaml接口中,每个组件都是一个模块,其中包含类型props和类型state。这些类型将被传递到实际的react props&state,因此需要在某个时候使用js.Unsafe.inject将它们转换为js。带有道具的示例(此处仅为字符串):

要实际使用这些道具,我需要从js React道具中获取道具类型对应的值,从而得到fromjs。 因此,props&state是每个组件模块中的自定义类型,需要存储在javascript props&state中,并且需要将它们转换回来。 这介绍了很多样板,看看上面的例子,把道具作为一个简单的字符串。对于每个组件模块,我都需要为props和state定义它。想象一下类型道具是一个复杂的记录。。。如何轻松地将其转换为js并将其恢复


是否有一种方法可以将自定义类型存储在javascript中,并将其返回到ocaml类型中,而不必使用这些函数进行转换?

您可以尝试使用此ppx重写器自动生成到/来自转换:。另外,您可能对我编写的一些关于react集成的代码感兴趣-感谢您的回复!我基本上是从您的回购开始了,JordWalk发布的要点是:您是否考虑过实施生命周期方法?我的意思是,如果一个模块需要实现组件,而另一个模块不应该实现组件,该怎么办?您是否考虑将任何类型馈送到defcomponent functor?您可以尝试使用此ppx重写器自动生成到/来自转换:。另外,您可能对我编写的一些关于react集成的代码感兴趣-感谢您的回复!我基本上是从您的回购开始了,JordWalk发布的要点是:您是否考虑过实施生命周期方法?我的意思是,如果一个模块需要实现组件,而另一个模块不应该实现组件,该怎么办?您是否有任何类型要提供给defcomponent函子?
type props = string
type jsval = Js.js_string Js.t
let from_js jsv = Js.to_string jsv
let to_js ov = Js.string ov